AWS Device Farm上的Selenium无法通过xpath定位元素

问题描述 投票:0回答:2

我是ADF的新手。我正在编写混合测试脚本,我想知道为什么不可能通过Amazon Device Farm Appium JUnit上的xpath找到元素。

我测试过,我可以这样做:

action.click(By.id("menu"), "Click on menu");

但我不能这样做:

action.click(By.xpath("//*[@id=\"menu\"]"), "Click on menu");

我有几个os测试脚本,我曾经在SauceLabs上测试过,我没有遇到任何问题。它可以识别屏幕上显示的所有元素,但我没有找到任何解释为什么不在AWS Device Farm上接受xpath的原因。

编辑:错误消息

AppTest failed: Argument was an invalid selector (e.g. XPath/CSS). (WARNING: 
The server did not provide any stacktrace information) Command duration or 
timeout: 151 milliseconds For documentation on this error, please visit: 
http://seleniumhq.org/exceptions/invalid_selector_exception.html Build info: 
version: '3.1.0', revision: 'b94c902', time: '2017-02-16 12:21:31 -0800' 
System info: host: 'ip-172-31-13-65', ip: '172.31.13.65', os.name: 'Linux', 
os.arch: 'amd64', os.version: '3.13.0-139-generic', java.version: 
'1.8.0_151' Driver info: io.appium.java_client.android.AndroidDriver `
selenium selenium-webdriver aws-device-farm
2个回答
1
投票

如果您正在测试Android应用,那么这个xpath应该可行。

By.xpath("//*[contains(@resource-id,'menu')]")

另外,不要忘记设置automationName所需的功能。

capabilities.setCapability("automationName", "uiautomator2");

0
投票

这应该工作:

action.click(By.xpath("//*[@id='menu']"), "Click on menu");

如果没有,try your xpath expression直到它有效。

© www.soinside.com 2019 - 2024. All rights reserved.