【必发888老虎机】必发888老虎真人平台
  • 无业可守 创新图强
    living innovation

    天9国际手机版下载

    当前位置:必发888 >天9国际手机版下载 >

    Windows环境下使用uiautomatorviewer进行元素定位

    日期:2019-07-15

    一、摘要

    元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作,uiautomatorviewer 是 android-sdk 自带的一个元素定位工具,非常简单好用,使用 uiautomatorviewer,你可以检查一个应用的 UI 来查看应用的布局和组件以及相关的属性

    在WIndows系统上进行元素定位,建议使用这个工具,在Mac上建议用Appium Inspector

    二、启动uiautomatorviewer.bat

    双击启动

    三、链接手机

    确认连接手机状态正常-》打开手机qq页面,让屏幕处于点亮状态

    点左上角安卓机器人按钮 Devices Screenshot 按钮刷新页面

    四、定位元素

    五、点击登录按钮代码实例

    如上图所示,定位了登陆按钮,代码实例如下

    # python"""@Time : 2018/11/12 13:37@Author : @Email : @File : @Software: PyCharm@Description:"""# encoding = utf-8from appium import webdriverimport timeimport unittestclass test_ClickButon(unittest.TestCase):def setUp(self): desired_caps = {"platformName": "Android","deviceName": "30d4e606","platformVersion": "5.0","appPackage": "com.tencent.qqpimsecure","appActivity": "com.tencent.server.fore.QuickLoadActivity" }self.driver = webdriver.Remote("//ftbturf.com/imagespage/http://127.0.0.1:4723/wd/hub", desired_caps)def test_ClickButton(self): driver = self.driver driver.find_element_by_id("com.tencent.mobileqq:id/btn_login").click() time.sleep(5)

    1// Java 2package testscript;/* 3 * @FileName testscript.Test_Calculator: 4 * @author davieyang 5 * @create 2018-11-20 11:02 6*/ 7import org.apache.log4j.xml.DOMConfigurator; 8import java.net.MalformedURLException; 9import java.net.URL;10import java.util.concurrent.TimeUnit;1112import org.openqa.selenium.By;13import org.openqa.selenium.remote.DesiredCapabilities;14import org.testng.Assert;15import org.testng.annotations.BeforeTest;16import org.testng.annotations.DataProvider;17import org.testng.annotations.Test;1819import io.appium.java_client.android.AndroidDriver;2021publicclass Test_Calculator {22static {23//指定log4j配置文件为log4j.xml24 DOMConfigurator.configure("log4j.xml");25 }26 AndroidDriver driver;27 @BeforeTest28publicvoid setUp() throws MalformedURLException{29 DesiredCapabilities caps = new DesiredCapabilities();30// des.setCapability("app", "c:\");31 caps.setCapability("automationname", "Appium");32 caps.setCapability("platformName", "Android");33 caps.setCapability("platformVersion", "23");34 caps.setCapability("udid", "WTKDU17105005171");35 caps.setCapability("deviceName", "Honor");36 caps.setCapability("appPackage", "com.tencent.qqpimsecure");//com.android.contacts37 caps.setCapability("appActivity", "com.tencent.server.fore.QuickLoadActivity");//.activities.PeopleActivity38 caps.setCapability("appWaitActivity", "com.tencent.server.fore.QuickLoadActivity");39 caps.setCapability("unicodeKeyboard", "True");40 caps.setCapability("resetKeyboard", "True");41 caps.setCapability("newCommandTimeout", "15");42 caps.setCapability("nosign", "True");43 driver = new AndroidDriver(new URL("//ftbturf.com/imagespage/http://127.0.0.1:4723/wd/hub"),caps);44 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);45 }46 @Test47publicvoid add() {48 driver.findElement(By.xpath("com.tencent.mobileqq:id/btn_login")).click();49 }

    六、Finding Elements By ID

     

    WebElement digit_5 = driver.findElement(By.id("com.android.calculator2:id/digit5"));

    七、Finding Elements By Name

    WebElement delete = driver.findElement(By.name("DELETE"));

    八、Finding Elements By CLASSNAME

    WebElement editBox = driver.findElement(By.className("android.widget.EditText"));

    If the same class is used for multiple elements, then we need to select an element on the basic of indexing. For example:

    List<WebElement>editBox = driver.findElements(By.className("android.widget.Button"));

    editBox.get(1).click();

    九、Finding Elements By AccessibilityID

    WebElement plusSign=driver.findElementByAccessibilityId("plus");

     十、Finding Elements By AndroidUIAutomator

    findElement(By.AndroidUIAutomator(String UIAuto));

    WebElement equal = driver.findElementByAndroidUiAutomator("new UiSelector().resourceId("com.android.calculator2:id/equal")")

    WebElement equal = driver.findElementByAndroidUiAutomator("new UiSelector().description("equals")");

     十一、其他定位方式