selendroid inspector xpth元素定位记录
android自动化测试元素定位,目前发现appium官方的uiautomatorviewer一般的元素定位还行,但好多都找不到。
这个时候,可以考虑selendroid的inspector
官网:http://selendroid.io/inspector.html
使用 E:\APP>java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app app-debug_3.1.3.904.apk
类似的模式打开selendroid纯服务器。
然后是python客户端代码:
#coding=utf-8
'''@author: lhy.yh@qq.com
'''
import unittest
from selenium import webdriver
class FindElementTest(unittest.TestCase):
def setUp(self):
desired_capabilities = {'aut': 'com.tenda.router.app:3.1.3.904'}
#desired_capabilities = {'aut': 'io.selendroid.testapp:0.17.0'}
self.driver = webdriver.Remote(
desired_capabilities=desired_capabilities
)
self.driver.implicitly_wait(30)
def test_find_element_by_id(self):
self.driver.get('and-activity://com.tenda.router.app.activity.Anew.Splash.SplashActivity')
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
如果大家不知道:
desired_capabilities = {'aut': 'com.tenda.router.app:3.1.3.904'}
里面的aut参数哪来的,那LZ再啰嗦一下:
1、打开http://localhost:4444/wd/hub/status
2、好了自己找想要的内容appId
3、要想正常运行APP,建议先到安卓系统APP应用卸载的地方,1、先卸载待测软件、2、再卸载selendroid名称的应用
{"value":{"os":{"name":"Windows 7","arch":"x86","version":"6.1"},"build":{"browserName":"selendroid","version":"0.17.0"},"supportedDevices":[{"emulator":false,"screenSize":"(1440, 2560)","serial":"LGD857cfd6ea69","platformVersion":"21","model":"LG-D857","apiTargetType":"google"}],"supportedApps":[{"mainActivity":"io.selendroid.testapp.HomeScreenActivity","appId":"io.selendroid.testapp:0.17.0","basePackage":"io.selendroid.testapp"},{"mainActivity":"io.selendroid.androiddriver.WebViewActivity","appId":"io.selendroid.androiddriver:0.17.0","basePackage":"io.selendroid.androiddriver"}]},"status":0}
特别留意需要使用debug模式,在APP初始化之后,取个断点就可以了。(前提是IDE需要支持DEBUG,例如LZ使用的是wing ide)
然后就打开APP 进入你需要定位的界面:
例如 LZ的:
LZ是想定位到WIFI开始时段、关闭时段需要输入的 4个时间值。例如图中深黑的数字,是一个textfield是可以输入的。
使用XPATH表达式:dr.find_element(:xpath,'//ScrollView/LinearLayout/LinearLayout/RelativeLayout/LinearLayout/NumberPicker\[1\]/CustomEditText').text
即可定位到第一个 17
以此类推
31
dr.find_element(:xpath,'//ScrollView/LinearLayout/LinearLayout/RelativeLayout/LinearLayout/NumberPicker\[3\]/CustomEditText').text
23
dr.find_element(:xpath,'//ScrollView/LinearLayout/LinearLayout/RelativeLayout/LinearLayout/NumberPicker\[4\]/CustomEditText').text
43
dr.find_element(:xpath,'//ScrollView/LinearLayout/LinearLayout/RelativeLayout/LinearLayout/NumberPicker\[6\]/CustomEditText').text
关于XPATH的语法就不多讲,XPATH就是要需要尝试才熟练。
selendroid inspector xpth元素定位记录的更多相关文章
- Mac环境下使用Appium Inspector进行元素定位
一.摘要 本篇博文介绍在Mac系统上使用AppiumI Inspector进行App页面元素定位 二.Finding elements by xpath WebElement digit_9 = dr ...
- python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...
- 初探appium之元素定位(1)
无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多 ...
- Selenium 基本操作--元素定位
对页面元素进行操作 1. 输入框输入 driver.findElement(By.id("id号")).sendKeys(“输入框输入内容”): 例:
- 元素定位(d4-2)
一,元素定位①优先级:首先选择id,其次选class,再就是根据其他唯一元素,在更加层级过滤定位,根据多属性定位,②首选CSS定位,在选XPATH定位 1.xpath定位 //* 获取当前网页全部 ...
- selenium+java二元素定位
页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法. 测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 自动化测试步骤 定位元素 ...
- appium---android元素定位
原文链接:https://www.cnblogs.com/meitian/p/6103391.html 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tool ...
- python3 + selenium 之元素定位
8种定位方式 定位一个元素 webdriver提供了一系列的对象定位方法,常用的有以下几种 driver.find_element_by_name()--最常用,简单 driver.find_elem ...
- appium自动化测试之UIautomatorviewer元素定位
appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...
随机推荐
- 【DOM】1.DOM优化
1.JS include :DOM BOM ECMA 2.Browser 分别独立实现dom & JS as if two isolated islands 3.JS操作DOM from th ...
- position属性
所有主流浏览器支持position属性: 任何版本的ie浏览器都不支持属性值“inherit”. position属性规定元素的定位类型,任何元素都可以定位,不过绝对定位或固定元素会生成一个块级框,不 ...
- linux下ssh使用rsa验证登陆MACOX
由于项目的需求,我这边ubuntu下常常需要SSH访问另外一台MACOS. 每次输入密码有点烦,就想到RSA公钥和密钥验证的方法. 像所有教程上讲的一样,本机执行 gong@hzsx:~$ ssh-k ...
- hdu 1491 Octorber 21st
Octorber 21st Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 转载最佳JQuery学习网站
转载文章,原出处: http://www.gbin1.com/technology/jquery/learningjquerywebsites/ jQuery是目前最流行的 JavaScript ...
- 射频识别技术漫谈(14)——S50与S70存取控制【worldsing笔记】
存取控制指符合什么条件才能对卡片进行操作. S50和S70的块分为数据块和控制块,对数据块的操作有"读"."写"."加值"."减值 ...
- IE6完美解决fixed方法
ie6对position:fixed不支持,网上有很多解决方法,有的在ie6,ie7上调试成功后,在ie8上又不好使,div层还是跟随滚动条浮 动:以下总结方法,在ie6,ie7,ie8上都调试成功, ...
- 在virtual pc中搭建基于ubuntu 的git环境
1. 在virtual pc 上安装 ubuntu http://www.hanselman.com/blog/InstallingUbuntu104LTSOnWindowsVirtualPCOnWi ...
- JavaScript要点(八) 闭包
JavaScript 变量可以是局部变量或全局变量. 私有变量可以用到闭包. 全局变量 函数可以访问由函数内部定义的变量,如: function myFunction() { var a = 4; r ...
- 人工智能-有限状态机(FSM)的学习
首先声明:此文源于本人最近学习的一本书 <游戏人工智能编程案例精粹> FSM的定义: 一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作 ...