【发布时间】:2020-04-25 23:02:49
【问题描述】:
这个问题很受欢迎,但我找到的答案对我不起作用。
所以,我有以下代码sn-p:
MobileElement room = driver.findElement (By.xpath ("//android.widget.TextView[@text = 'Test Room']"));
//Doing some stuff with the room element
MobileElement roomContainer = room.findElement (By.xpath ("./.."));
我得到了room 变量,用它做一些事情。然后我尝试搜索这个元素的父元素,但我得到了NoSuchElement 异常。
我尝试了不同的 Xpath 组合,但都没有奏效:
".//..", "//..", "/..", ".."
但是,当我使用整个查询从驱动程序中搜索时,它可以工作:
driver.findElement (By.xpath ("//android.widget.TextView[@text = 'Test Room']/.."))
但在这种特殊情况下,我需要直接从 room 元素中搜索。有什么建议吗?
【问题讨论】:
-
./.. 是跳转到直接父级的正确表达式。正如您已经提到它不起作用,请尝试在 Xpath 中使用 parent 函数。请添加 html,以便它帮助您获得正确的响应。
-
你可以试试 '../..' 它指向父节点吗?
-
@Sooraj Android 中没有 HTML。我使用的是 Appium,而不是 Selenium。
-
@Muzzamil 试过了,没用。
-
@LexSav,对不起,我指的是应用源
标签: java android xpath automated-tests appium