使用 class 和索引单击元素时出现问题

Problem clicking elements using class and index

我正在尝试编写代码以自动在 Instagram 上向人们发送私信。我坚持获取代码以单击 DM 按钮。

在 UIautomatorviewer 中,没有文本或资源 ID,所以我尝试使用 class。

当我 运行 代码时,它没有点击正确的东西。它单击 NEXT 按钮。

这是代码 -

By path2 = By.xpath("//android.widget.ImageView[@index='3']"); 
driver.findElement(path2).click(); 
Thread.sleep(5000);

有人可以帮忙吗?我是新手,所以我不是很有经验。

因为我看不到整个 XML 我真的不能说你做错了什么,但可能你的 xpath 不正确。 使用 UIAutomatorViewer,您可以保存 XML,然后您可以在其上测试您的 xpath。使用 XMLSpy 或像 https://www.freeformatter.com/xpath-tester.html 这样的在线工具。

可能还有更多 android.widget.ImageView 索引 = 3,我认为 appium 选择了第一个?因此,您可以将 xpath 更改为更独特的,例如:

//android.widget.FrameLayout//android.widget.LinearLayout//android.widget.ImageView[@index='3']"

基于 UIAutomator Viewer 屏幕,您还可以使用 content-desc,如下所示

By path2 = By.xpath("//android.widget.ImageView[contains(@content-desc,'Message')]");
driver.findElement(path2).click();