关于Selenium xpath text():Selenium xpath text()-简单选择似乎不起作用

Selenium xpath text() - simple selection seemingly not working

我在Java,Chrome上使用Selenium WebDriver 2.53.1。

我找到一个元素并将其保存在名为dropdownMenuList的WebElement变量中。 这是其格式的externalHTML。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<ul tabindex="-1" class="dropdownMenu apmurldropdownmenu thing menu" role="menu" aria-label="Menu region">
    <li class="menuitem apmurldropdownmenu" tabindex="-1" role="menuitem">
        CardNameWebpage
   
</li>

    <li class="menuitem apmurldropdownmenu" tabindex="-1" role="menuitem">
        CardNameWebpage
   
</li>

    <li class="menuitem apmurldropdownmenu" tabindex="-1" role="menuitem">
        CardNameWebpage
   
</li>

    <!-- react-text: 9 -->
    <!-- /react-text -->

</ul>

然后我通过xpath搜索它:

1
dropdownMenuList.findElement(By.xpath("*[text()='CardNameWebpage']"));

而且我得到了NoSuchElementException。 但是HTML包含所有三个元素。 我究竟做错了什么?


您应该在前面加上两个斜杠(//),因为要查找的元素不在顶层

1
"//*[text()='CardNameWebpage']"

要查找当前元素的后代元素(paul tremberth绝对正确:)),请在xpath的开始处添加点

1
".//*[text()='CardNameWebpage']"


编辑:您需要更改为//*[text()='value']//*[contains(text(),'value')]