阿皮Xpath轴在定位器中的用法。在当前元素的上下文中找到同级/父/子/等元素

时间:2019-01-03 16:26:49

标签: xpath appium-android

是否有可能在现有移动元素的上下文中找到同级/父/子/等移动元素。 例如,我有基本元素: MobileElement mobileElement = driver.findElement(By.xpath(“ // any / xpath / locator”));

然后我需要找到以下同级元素。 在Selenium中,我可以使用类似的代码: MobileElement nextMobileElement = mobileElement.findElement(“ following-sibling :: nextelement ['anycondition']”); 但是在appium中,我收到了NoSuchElementException。

在Appium中使用xpath轴以上述方式定位元素的正确语法是什么?

3 个答案:

答案 0 :(得分:0)

通常,如果要使用xpath在父元素下查找元素,请在xpath上添加,以表示要在给定父元素下搜索子元素xpath。因此,您可以尝试以下方法:

mobileElement.findElement(By.xpath(".(xpath of the child element)")

例如mobileElement.findElement(By.xpath(“ // div [@ class ='xyz']”)

答案 1 :(得分:0)

Appium像WebDriver一样支持XPath。确保您的XPath是正确的,您可以在appium-desktop中对其进行测试。 Following-sibling在为我工作,没有任何问题。 如果Appium无法处理XPath表达式,则应获取相关的异常。

答案 2 :(得分:0)

以以下方式找到解决方案: 当appium无法通过其名称选择元素(即,存在一个元素)时,您可以查看其“ class”属性,并且其中将包含相同的文本:class =“ android.widget.ViewAnimator”。因此,您可以基于此属性构建your xpath复杂定位器。在使用xpath轴的情况下,它看起来类似于:// some / xpath / preceding-sibling :: * [@@ class ='android.widget.ViewAnimator']。