gpt4 book ai didi

java - 在 Appium 中找不到带有 Xpath 的元素

转载 作者:行者123 更新时间:2023-11-29 22:42:13 25 4
gpt4 key购买 nike

我是 Appium 的新手。抱歉,如果问题重复,但我没有找到解决方案。

我有一个问题 - 我无法使用 Xpath 定位元素,但我可以使用 ID 定位器定位它。请参阅所附的屏幕截图。该问题不仅针对此元素重现,而且针对所有元素重现。看起来 Xpath 根本不起作用。

我正在使用 Appium 7.3.0(尝试过不同的版本),通过设置 UIAutomator2功能 ("automationName", "UiAutomator2"),模拟器上的 Android 8.1。

我尝试了以下 Xpath 选项:

  1. 从 AndroidDriver 级别:
driver.findElement (By.xpath ("//*[@id='read_indicator']"));
driver.findElement (By.xpath ("//android.widget.ImageView[@id='read_indicator']"));
  1. 来自消息元素本身:
MobileElement message = driver.findElement (By.id ("body_bubble"));
message.findElement (By.xpath (".//*[@id='read_indicator']"));
message.findElement (By.xpath (".//android.widget.ImageView[@id='read_indicator']"));
  1. 方法与上述相同,但从 ID 为 footer_delivery_status 且直接包含所需元素的框架布局开始。

但我可以使用 ID 定位器毫无困难地找到该元素:

driver.findElement (By.id ("read_indicator"));
message.findElement (By.id ("read_indicator"));

此外,contains()ends-with() 等函数也不起作用。抛出以下异常:

org.openqa.selenium.InvalidSelectorException: java.lang.IllegalArgumentException: Unable to compile '//*[contains(@id,'read_indicator')'

此外,我在需要的地方使用了 implicitWaitThread.sleep,因此元素应该存在。

请告诉我为什么我在使用 Xpath 时遇到这样的问题。

enter image description here

最佳答案

尝试以下xpath:

//*[contains(@resource-id, 'read_indicator')]

或者:

//*[contains(@content-desc, 'Message read')]

关于java - 在 Appium 中找不到带有 Xpath 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58931944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com