【问题标题】:Appium unable to identify element using resource-idAppium 无法使用资源 ID 识别元素
【发布时间】:2017-12-13 14:58:04
【问题描述】:

Appium 无法使用 id 定位器(resource-id)来识别元素,而我们可以使用 Accessibility Id 定位器来识别相同的元素。

请参考附图。enter image description here

【问题讨论】:

  • 您没有说明应用类型 - 是混合应用还是原生应用?
  • 原生应用.....
  • 有些时候开发者会为某些元素设置动态资源id,请检查资源id是否改变。如果 id 每次都相同,您可以尝试以下代码: driver.find_element_by_id("your_Element_ID") 在此我们必须按 id 搜索元素,因为 appium 会将 resource-id 视为 id 。
  • 资源 id 始终相同。但下面不起作用: driver.findElementById("rptRole__ctl0_rptCommunicationItems__ctl1_Repeater1__ctl0_dl_attachments__ctl0_lnk_attachment").click() 下面起作用: driver.findElementByAccessibilityId("message_from_paul_mysay.pdf").click();但可访问性的问题在于,它是动态的,所以我不能使用它。我注意到的一件事是,在这种情况下,资源 ID 不以包名称开头。

标签: appium appium-android


【解决方案1】:

您的 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']")

如果这些都不起作用,您将不得不提供更多信息

【讨论】:

  • 这不起作用。我不能使用 content-desc 字段,因为这是动态的。我唯一可以使用的是资源 ID。 Appium 版本为 1.4.16.1。我是自动化新手,还没有使用过 appium 检查器。我在启动检查器时遇到了一些错误。
  • Appium 在启动时会检查更新并显示没有可用更新。我注意到的一件事是,在这种情况下,资源 ID 不以包名称开头。这些链接是 .pdf/.xls 文件。如果你有任何线索。
【解决方案2】:

如果您的 ID 中有 $ 之类的,Appium 不支持。能不能发下你的全ID。 请尝试使用 findElementById 方法如下:

driver.findElementById("alertTitle");

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

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

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

WebElement yourElement= allElements.get(Required_Index);

【讨论】:

    【解决方案3】:

    以下代码有效。

    driver.findElementsByXPath("//android.view.View[contains(@resource-id,'rptRole')]").click();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2014-11-27
      相关资源
      最近更新 更多