我正在Android 6.0手机上测试示例Android应用,并运行Appium UI version 1.10.0
和java version "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的其他菜单项。
有什么建议吗?
答案 0 :(得分:0)
首先,尝试在appium inspector中找到相同的xpath,并检查它显示了多少个匹配元素。
如果它仅显示一个匹配的元素,则尝试对找到的元素执行某些操作,并检查它在哪里执行操作。
也尝试使用resource-id查找元素。如果该元素不存在,则使用其父元素或同级元素。
很多时候,人们错误地将元素的xpath获取到实际元素的后面并面对这种问题。尝试避免生成xpath。
答案 1 :(得分:0)
您可以使用具有 cont-desc 的 findElementByAccessibilityId 来访问元素。
MobileElement element= driver.findElementByAccessibilityId("\"73: [Office Locations]\"");
element.click();
您可以要求开发人员在代码中添加唯一的cont-desc。
答案 2 :(得分:0)
您可以使用xpath查找元素,并且在xpath中需要指定内容描述,我认为这可能会有所帮助
driver.findElementByXPath("//android.view.View[@content-desc='description'].click();
您指定的方式有误,因此它没有点击显示的内容描述,因为您必须提及它