Appium无法使用resource-id识别元素

时间:2017-12-05 02:54:30

标签: appium appium-android

Appium无法使用id locator(resource-id)识别元素,而是使用Accessibility Id定位器识别相同的元素。

请参阅附图。enter image description here

3 个答案:

答案 0 :(得分:0)

你的Appium版本是什么?你能用Appium Inspector打开它来检查UI Automator Viewer是否有任何不同?

无论如何......试试这个

#Can't see at your screenshot the whole resource-id so I put what I see.
driver.find_element_by_xpath("//android.view.View[@resource-id='rptRole__ctl0_rptCommunicationlt...']")

#You could also try these two options:
driver.find_element_by_xpath("//android.view.View[@content-desc='1_gr_selected_stores_flex_update.xls']")

driver.find_element_by_xpath("//android.view.View[@text='1_gr_selected_stores_flex_update.xls']")

如果这些都不起作用,则必须提供更多信息

答案 1 :(得分:0)

如果你有一些类似$ ID的话,Appium不会支持。你能发布完整的身份证吗? 请使用findElementById方法尝试如下:

driver.findElementById("alertTitle");

如果不工作,请使用类名来查找元素并使用索引来定位元素。

List<WebElement> allElements=driver.findElementsByClassName("android.view.View");

使用上面列表中的索引获取元素。

WebElement yourElement= allElements.get(Required_Index);

答案 2 :(得分:0)

下面的代码可以使用。

driver.findElementsByXPath(&#34; // android.view.View [含有(@资源-ID,&#39; rptRole&#39)]&#34)。单击();