2016-04-21 87 views
3

我是新的與appium。 我有我的屏幕內的元素列表中的親戚佈局 但列表包含不同類型的元素,我想只訪問它們的具體類型的一個。Xpath,不包含兒童appium

例如: 張揚看起來像這樣

  • [相對佈局]
    • [查看]
      • [Web視圖]

一個正常的製品將具有此

  • [相對佈局]
    • [視圖id =的view_id]
    • [ImageView的ID = picture_id]
    • [TextView的ID =的title_id]

subrscriber文章將這樣

  • [相對佈局]
    • [視圖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)]"));

但沒有工作:/

回答

2

我不知道爲什麼你嘗試過使用not(.//android.widget.ImageView),因爲正常物品,作爲解釋,包含ImageView。相反,也許你想找到僅包含一個ImageViewRelativeLayout

在XPath,你可以使用count()過濾,包含一定數量的後代元素,例如元素:

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

我的第一次嘗試是要看到,如果「不」功能的工作事件沒有結果,我是搜索但我無法設法使其工作 通過嘗試你的解決方案,我發現,如果你使用像count()函數,你必須讓你的研究direclty在驅動程序,而不是一個元素,也許它是也是「不」沒有工作的原因 反正非常感謝! – user3718160