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

Java 使用类和索引单击元素时出现问题,java,android,selenium,automation,appium,Java,Android,Selenium,Automation,Appium,我正试图写代码自动DM Instagram上的人。我一直在努力让代码点击DM按钮 在UIautomatorviewer中,没有文本或资源id,因此我尝试使用该类 当我运行代码时,它没有点击正确的东西。它单击它旁边的按钮 这是代码- By path2 = By.xpath("//android.widget.ImageView[@index='3']"); driver.findElement(path2).click(); Thread.sleep(5000); 有人能帮忙吗?我不熟悉这

我正试图写代码自动DM Instagram上的人。我一直在努力让代码点击DM按钮

在UIautomatorviewer中,没有文本或资源id,因此我尝试使用该类

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

这是代码-

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

有人能帮忙吗?我不熟悉这一点,所以我不是很有经验。

因为我看不到整个XML,所以我无法真正判断您做错了什么,但您的xpath可能不正确。 使用UIAutomatorViewer,您可以保存XML,然后可以在其上测试xpath。使用XMLSpy或类似的在线工具

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

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

因为我看不到整个XML,所以我无法真正说出您做错了什么,但您的xpath可能不正确。 使用UIAutomatorViewer,您可以保存XML,然后可以在其上测试xpath。使用XMLSpy或类似的在线工具

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

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

基于UIAutomator查看器屏幕,您还可以使用
content desc
,如下所示

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

基于UIAutomator查看器屏幕,您还可以使用
content desc
,如下所示

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