Appium [已解决] 关于 appium 中的 xpath 定位元素问题

蓝寅 · 2016年01月23日 · 最后由 Tracy 回复于 2017年02月20日 · 2378 次阅读

环境:appium+jdk1.8+Genymotion 模拟器(三星 S5)
目的:学习 xpath 定位
实验 app:android 自带的计算器
如下图:
通过 uiautomatorviewer.exe 查询到元素的 text 属性 = 6

我编写的代码如下:
driver.findElementByXPath("//android.widget.TextView[contains(@text,'6')]").click();

通过文本查找目标控件,但是发现执行过程中元素不可识别,忘大家帮忙解决一下。
感谢感谢!!!

是自己太生搬硬套了。代码应是这样:
driver.findElementByXPath("//android.widget.Button[contains(@text,'6')]").click()

共收到 9 条回复 时间 点赞

你可以用 findElementByName.
例如: findElementByName ("6").

#1 楼 @jinjun0620 嗯嗯,我晚上没事情的试试你这个方法,我还没试过这么写

3楼 已删除

//android.**/[contains(@text,'6'] 换成//[@text=6] 更简洁
借你宝地问个问题
Appium 下 java 调用 driver.findElementByXPath(“//*[@text='添加 ETC 卡 ‘]“).click() 执行没有异常, 但是元素被点击并没有反应
这个元素名字在本页面是唯一的 ,元素属性 clickable=true ,不知道其他属性是否有问题
最后用下面的 XPATH 路径 倒是实现点击了
driver.findElementByXPath("//android.widget.ListView/android.widget.RelativeLayout").click();

//android.**[contains(@text,'6'] 换成//*[@text=6] 更简洁

#4 楼 @johnwrite 控件层级问题。你点了文本,周围也可以点的

@neyo 您好 , 用文本定位 click 没反应 控件层级问题需要怎么解决

@neyo 您好 , 用文本定位时 click 没反应 , driver.findElementByXPath("//android.widget.ListView/android.widget.RelativeLayout").click() 倒是可以点击 !! 请问控件层级问题需要怎么解决

匿名 #2 · 2016年03月31日

@johnwrite 你括号里面的符号好像是中文的哦...driver.findElementByXPath(“//*[@text='添加 ETC 卡 ‘]“).click()

请问您使用的设备是 Mac 还是 Windows?目前 Appium for Windows 用 Xpath 定义元素位置好像比较麻烦唉,请问您是怎么操作的呢?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册