我使用的xpath适用于Android应用:
//android.widget.EditText[contains(@resource-id,'etPass')]
当我在真实设备或VM上本地运行测试时,此xpath工作正常。
但是当我在Sauce Labs上运行相同的测试时,它会给我一个无效的选择器异常。
org.openqa.selenium.InvalidSelectorException:
An error occurred while searching for an element by XPath. (WARNING:
The server did not provide any stacktrace information)
Command duration or timeout: 88 milliseconds
For documentation on this error, please visit:
http://seleniumhq.org/exceptions/invalid_selector_exception.html
当我使用带有@text
的xpath代替@resource-id
时,它可以正常工作。为什么Sauce Labs不会将@resource-id
识别为查找xpath的有效属性?
以下是uiautomatorviewer with xml
的屏幕截图答案 0 :(得分:0)
正确的方法是使用它:
//android.widget.EditText[contains(@id,'etPass')] //resource-id is not a recognised attribute for selection
此外,如果您需要特定于使用x-path选择单个元素:
//android.widget.EditText[@id='etPass'] // = ensures the value match for specified attribute