zoukankan      html  css  js  c++  java
  • Appium元素定位-Toast

    Toast简介

    • Android中的Toast是一种简易的消息提示框。 当视图显示给用户,在应用程序中显示为浮动。和弹出框不一样的是,它永远不会获得焦点,无法被点击。
    • Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,一般3秒左右就消失了。因此使用传统的元素定位工具,我们是无法定位到Toast元素的。


    出处链接:https://www.jianshu.com/p/211a8f6ff064

    获取要求:

    1.Java-client 5.0+

    2.使用UIAutomator自动化引擎

    3.Android系统版本5.0+

    获取方式

    By.xpath("//*[contains(@text,'toast部分信息')]")

    举例58同城apk。

    先获取包名和类名

    package: name='com.wuba'

    launchable-activity: name='com.wuba.activity.launch.LaunchActivity'

    操作如下

    aapt dunpp badging

     1.手动点击未登录开始

    package com.test.firstAppium;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;
    import io.appium.java_client.android.AndroidDriver;
    public class ToastTest {
     
     // 声明全局变量
      public static AndroidDriver<WebElement> androidDriver;
      @BeforeTest
      public void setup() throws MalformedURLException {
       // 1.创建配置对象
       DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
       // 2.添加配置
       // deviceName:可以找到我们测试的设备
       desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001");
       // platformName:测试平台android or IOS
       desiredCapabilities.setCapability("platformName", "Android");
       // appPackage:找到测试 APP:aapt dump badging.....
       desiredCapabilities.setCapability("appPackage", "com.wuba");
       // automationName:uiautomator2来解决输入框输入不了数据
       // 自动化引擎
        //desiredCapabilities.setCapability("automationName", "uiautomator2");
       // 不清理应用的数据,默认是清理的
       desiredCapabilities.setCapability("noReset", true);
       // appActivity:测试app入口
       desiredCapabilities.setCapability("appActivity", "com.wuba.activity.launch.LaunchActivity");
       // 创建驱动
       // 传入2个参数,第一个参数:Appium通讯地址,第二个参数:配置对象
       androidDriver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);
       // 隐式等待
       androidDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      }
      @Test
      public void getToast() {
       //androidDriver.findElementsByAndroidUIAutomator("new UiSelector().text("未登录")").click();
       androidDriver.findElementById("com.wuba:id/header_login_button").click();
       //androidDriver.findElementsByAndroidUIAutomator("new UiSelector().text("账号密码登录")").click();
       androidDriver.findElementById("com.wuba:id/accountLogin").click();
       androidDriver.findElementById("com.wuba:id/login_username").sendKeys("123333334");
       androidDriver.findElementById("com.wuba:id/login_password").sendKeys("14444423");
       androidDriver.findElementById("com.wuba:id/login_login_button").click();
       //toast获取方式By.xpath("//*[contains(@text,'toast部分信息')]")
       WebElement toastElement =androidDriver.findElementByXPath("//*[contains(@text,'用户名与密码')]");
       System.out.println(toastElement.getText());
      }
      
      
      @AfterTest
      public void teardown() throws InterruptedException {
       Thread.sleep(3000);
       androidDriver.quit();
      }
     
    }
  • 相关阅读:
    SPOJ 694 (后缀数组) Distinct Substrings
    POJ 2774 (后缀数组 最长公共字串) Long Long Message
    POJ 3693 (后缀数组) Maximum repetition substring
    POJ 3261 (后缀数组 二分) Milk Patterns
    UVa 1149 (贪心) Bin Packing
    UVa 12206 (字符串哈希) Stammering Aliens
    UVa 11210 (DFS) Chinese Mahjong
    UVa (BFS) The Monocycle
    UVa 11624 (BFS) Fire!
    HDU 3032 (Nim博弈变形) Nim or not Nim?
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/12459423.html
Copyright © 2011-2022 走看看