一、摘要

元素定位本篇主要介绍如何使用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)
 // Java
package testscript;/*
* @FileName testscript.Test_Calculator:
* @author davieyang
* @create 2018-11-20 11:02
*/
import org.apache.log4j.xml.DOMConfigurator;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; import io.appium.java_client.android.AndroidDriver; public class Test_Calculator {
static {
//指定log4j配置文件为log4j.xml
DOMConfigurator.configure("log4j.xml");
}
AndroidDriver driver;
@BeforeTest
public void setUp() throws MalformedURLException{
DesiredCapabilities caps = new DesiredCapabilities();
// des.setCapability("app", "c:\\");
caps.setCapability("automationname", "Appium");
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "23");
caps.setCapability("udid", "WTKDU17105005171");
caps.setCapability("deviceName", "Honor");
caps.setCapability("appPackage", "com.tencent.qqpimsecure");//com.android.contacts
caps.setCapability("appActivity", "com.tencent.server.fore.QuickLoadActivity");//.activities.PeopleActivity
caps.setCapability("appWaitActivity", "com.tencent.server.fore.QuickLoadActivity");
caps.setCapability("unicodeKeyboard", "True");
caps.setCapability("resetKeyboard", "True");
caps.setCapability("newCommandTimeout", "15");
caps.setCapability("nosign", "True");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),caps);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void add() {
driver.findElement(By.xpath("com.tencent.mobileqq:id/btn_login")).click();
}

六、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进行元素定位的更多相关文章

  1. Windows环境下的MYSQL5.7配置文件定位

    1.MYSQL安装目录 select @@basedir; 2.MYSQL数据文件目录 select @@datadir; 3.相应地,配置文件在数据文件上一级目录中 4.停止MYSQL服务 net ...

  2. Windows环境下MongoDB的安装与配置

    MongoDB是一种高性能的文档型数据库,现介绍一下在Windows环境下MongDB的安装与配置 获取MongoDB 打开官方网站 www.mongodb.org,找到页面右上解的DownLoad链 ...

  3. 第一部分:使用iReport制作报表的详细过程(Windows环境下)

    提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/文章将会涉及3个方面的内容: 第一部分:使用iReport制作报表的详细 ...

  4. Windows环境下32位汇编语言程序设计(典藏版)

    Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张)(年,经典再现!) 罗云彬 著 ISBN 978-7-121-20759-4 2013年7月出版 定价:99.00元 756页 1 ...

  5. windows环境下搭建ffmpeg开发环境

           ffmpeg是一个开源.跨平台的程序库,能够使用在windows.linux等平台下,本文将简单解说windows环境下ffmpeg开发环境搭建过程,本人使用的操作系统为windows ...

  6. 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍

    浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...

  7. windows环境下永久修改pip镜像源的方法(转)

    一.在windows环境下修改pip镜像源的方法(以python3.7为例) (1):在windows文件管理器中,输入 %APPDATA%,cmd里面输入即可. (2):会定位到一个新的目录下,在该 ...

  8. 一、在windows环境下修改pip镜像源的方法(以python3为例)

    在windows环境下修改pip镜像源的方法(以python3为例) 1.在windows文件管理器中,输入 %APPDATA% 2.会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文 ...

  9. windows环境下apache-apollo服务器搭建及发布订阅测试

    查证了一些资料之后,发现 apache-apollo服务器使用的人还是挺多的,资料也比较齐全,所以直接选择 apache-apollo了,具体性能如何,先用起来再说吧: 1.下载 apache-apo ...

随机推荐

  1. selenium3关于ddt驱动之读取json文件。。。

    from selenium import webdriver import ddt import time import unittest """ DDT(驱动.json ...

  2. 后端根据查询条件生成excel文件返回给前端,vue进行下载

    一.HTML代码 <el-col :xs="2" :md="2" :sm="3"> <el-button type=&qu ...

  3. 《Brennan's Guide to Inline Assembly》学习笔记

    原文见Brennan's Guide to Inline Assembly. AT&T语法 vs Intel语法 DJGPP是基于GCC的,因此它使用AT&T/UNIT语法,这和Int ...

  4. git 服务端安装

    服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 [root@localhost home]# id git id: git:无此用户 [root@localhost h ...

  5. kafka consumer 的配置(五)

    fetch.min.bytes. #获取最小字节数据 Consumer 向broker中要数据时是按大小来返回的,如果数据没有达到指定的MB,consumer会处于等待状态,直到broker 从pro ...

  6. Django 用Session和Cookie分别实现记住用户登录状态

    简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Se ...

  7. SQLite进阶-14.子查询

    目录 子查询 SELECT语句中的子查询 INSERT语句中的子查询 UPDATE语句中的子查询 DELETE语句中的子查询 子查询 子查询或内部查询或嵌套查询是在另一个SQLite查询内嵌入在WHE ...

  8. 【IDEA插件】—— 代码量统计工具Statistic

    1.下载 1.打开idea设置界面,选择 plugins标签 2.搜索“Statistic”插件,点击 install 3.重启IDEA 2.使用 1.菜单栏中找到view 2.在下层目录中找到Sta ...

  9. vs code 更改快捷键

    选择左下角设置图标,快捷键方式 文件列表修改,搜 list 文件tree list.focusUp -> ctrl+p

  10. codeforces 1249C1 + 1249C2 (贪心)

    (点击此处查看原题) 题意分析 给出一个数n,求一个数m,使得m >= n ,并且m 满足: m = ∑ 3 ^ i * x (x = 0 或者 x = 1 ),求出满足条件的最小的m 解题思路 ...