Windows环境下使用uiautomatorviewer进行元素定位
Posted davieyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows环境下使用uiautomatorviewer进行元素定位相关的知识,希望对你有一定的参考价值。
一、摘要
元素定位本篇主要介绍如何使用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-8
from appium import webdriver
import time
import unittest
class 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(‘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 2 package testscript;/* 3 * @FileName testscript.Test_Calculator: 4 * @author davieyang 5 * @create 2018-11-20 11:02 6 */ 7 import org.apache.log4j.xml.DOMConfigurator; 8 import java.net.MalformedURLException; 9 import java.net.URL; 10 import java.util.concurrent.TimeUnit; 11 12 import org.openqa.selenium.By; 13 import org.openqa.selenium.remote.DesiredCapabilities; 14 import org.testng.Assert; 15 import org.testng.annotations.BeforeTest; 16 import org.testng.annotations.DataProvider; 17 import org.testng.annotations.Test; 18 19 import io.appium.java_client.android.AndroidDriver; 20 21 public class Test_Calculator { 22 static { 23 //指定log4j配置文件为log4j.xml 24 DOMConfigurator.configure("log4j.xml"); 25 } 26 AndroidDriver driver; 27 @BeforeTest 28 public void 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.contacts 37 caps.setCapability("appActivity", "com.tencent.server.fore.QuickLoadActivity");//.activities.PeopleActivity 38 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("http://127.0.0.1:4723/wd/hub"),caps); 44 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 45 } 46 @Test 47 public void 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")");
十一、其他定位方式
以上是关于Windows环境下使用uiautomatorviewer进行元素定位的主要内容,如果未能解决你的问题,请参考以下文章
windows下python虚拟环境virtualenv安装和使用