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']" |
编辑:您需要更改为