我正在 Android 6.0 手机上测试一个示例 Android 应用程序并运行 Appium UI 版本 1.10.0
和 java 版本“1.8.0_111”
。我需要单击 Office Location 菜单项,但找不到合适的定位器。
这是来自 Appium Inspector 的快照。
我也尝试使用 Appium Inspector 中的录制功能,它确实会将我带到应用程序上的正确屏幕。
但是,当我在项目中使用以下代码行时,选择了不正确的菜单项。
MobileElement el1 = (MobileElement) driver.findElementByXPath("(//android.widget.ImageView[@content-desc=\"73: [Office Locations]\"])[2]");
el1.click();
我希望 Office Locations 菜单项被选中,而是选择了具有不同 cont_desc 的不同菜单项。
有什么建议吗?
最佳答案
首先尝试在 appium 检查器中找到相同的 xpath 并检查它显示了多少匹配元素。
如果它只显示一个匹配元素,则尝试对找到的元素执行一些操作并检查它在哪里执行操作。
也尝试使用 resource-id 来查找元素。如果此元素不存在,则使用其父元素或同级元素。
很多时候人们错误地获取实际元素后面的元素的 xpath 并面临这种问题。尽量避免生成 xpath。
关于java - Appium 选择了错误的定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54190022/