【问题标题】:Xpath that does not contain a child appium不包含子 appium 的 Xpath
【发布时间】:2016-08-14 07:27:10
【问题描述】:

我是 appium 的新手。 我的屏幕中有一个元素列表,这些元素位于亲属布局中 但该列表包含不同类型的元素,我只想访问具有特定类型的元素。

例如: 宣传会是这样的

  • [相对布局]
    • [查看]
      • [网页视图]

一般的文章都会有这个

  • [相对布局]
    • [查看 id=view_id]
    • [ImageView id=picture_id]
    • [TextView id=title_id]

订阅者的文章会有这个

  • [相对布局]
    • [查看 id=view_id]
    • [ImageView id=picture_id]
    • [ImageView id=subscriber_id]
    • [TextView id=title_id]

如何只选择“普通”文章?

我试过这个 List<WebElement> list = el.findElements(By.xpath("//android.widget.RelativeLayout[not(.//android.widget.ImageView)]"));

但没用:/

【问题讨论】:

    标签: android xpath appium


    【解决方案1】:

    我不确定您为什么尝试使用not(.//android.widget.ImageView),因为普通文章,正如解释的那样,包含ImageView。相反,也许您想找到只包含一个ImageViewRelativeLayout

    在XPath中,你可以使用count()来过滤包含一定数量后代元素的元素,例如:

    //android.widget.RelativeLayout[count(.//android.widget.ImageView) = 1]
    

    【讨论】:

    • 我的第一次尝试是查看“not”函数是否在没有我正在搜索的结果的情况下工作,但我无法使其工作通过尝试您的解决方案,我发现如果您使用像 count() 这样的函数,您必须直接在驱动程序上而不是在元素上进行研究,也许这也是“不”无论如何都不起作用的原因,非常感谢!
    猜你喜欢
    • 2016-12-28
    • 2021-06-09
    • 2017-09-23
    • 2011-07-24
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多