Appium通过XPath查找元素-两个元素具有相同的XPath

Appium通过XPath查找元素-两个元素具有相同的XPath,appium,Appium,我在测试新闻时遇到问题。。。我需要从应用程序中的页面获取属性(“名称”),以便比较新闻标题。要查找此标题,我使用了: String storyTitle = driver.findElementByXPath("//android.view.View[@index ='1']").getAttribute("name"); 但是有一个问题,因为在这个标题上面有另一个元素具有相同的xpath,我得到的是它的内容,而不是我想要的内容 以下是这些元素的UIAutomator视图: 我需要在con

我在测试新闻时遇到问题。。。我需要从应用程序中的页面获取属性(“名称”),以便比较新闻标题。要查找此标题,我使用了:

String storyTitle = driver.findElementByXPath("//android.view.View[@index ='1']").getAttribute("name");
但是有一个问题,因为在这个标题上面有另一个元素具有相同的xpath,我得到的是它的内容,而不是我想要的内容

以下是这些元素的UIAutomator视图:


我需要在content desc from element中获取标题,这样我就可以将它与我从新闻中取出的上一个屏幕上的标题进行比较,但我不知道如何跳过第一个元素,转到第二个元素,因为它们的所有选项都是相同的exepc content desc,我不能使用它。有任何帮助吗?

使用
findElementsByXPath
并获取元素所需出现的“name”属性,在您的示例中,是第二次出现-
get(1)


谢谢你的回答,但我有个问题。当我放置这一行时,该行od代码出现错误:“类型WebElement的方法get(int)未定义”。如果选择“将强制转换添加到方法接收器”,则会出现错误:“RemoteWebDriver类型中的方法get(字符串)不适用于参数(int)”。如果我选择在WebDriver而不是RemoteWebDriver中强制转换它,同样的错误也会发生:(好的。你能发布更新的代码吗?我希望你使用的是“findElementsByXPath”(它会提供元素列表)。对不起,苏里亚,我的错误-问题是我使用了findElementByXPath,而不是findElementsByXPath,正如你所写的:)我试过了,效果很好。。只需要修剪应用程序在第二个标题末尾添加的一些文本,但它解决了我的问题:)再次感谢!:)
String storyTitle = driver.findElementsByXPath("//android.view.View[@index ='1']").get(1).getAttribute("name");