是否有可能在现有移动元素的上下文中找到同级/父/子/等移动元素。 例如,我有基本元素: MobileElement mobileElement = driver.findElement(By.xpath(“ // any / xpath / locator”));
然后我需要找到以下同级元素。 在Selenium中,我可以使用类似的代码: MobileElement nextMobileElement = mobileElement.findElement(“ following-sibling :: nextelement ['anycondition']”); 但是在appium中,我收到了NoSuchElementException。
在Appium中使用xpath轴以上述方式定位元素的正确语法是什么?
答案 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']。