如何使用xpath访问特定的子div?(Selenium Java)
我有以下html代码:如何使用xpath访问特定的子div?(Selenium Java),java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,我有以下html代码: <div class="panel"> <div class = "heading"> <span class="wName">Name</span> <div class="foo1" style="display: none;"></div> <div class="foo2" style="display: none;"><
<div class="panel">
<div class = "heading">
<span class="wName">Name</span>
<div class="foo1" style="display: none;"></div>
<div class="foo2" style="display: none;"></div>
</div>
</div>
我不确定这为什么不能正确检索元素。您的XPath错误<代码>。表示“的父项”。单点
表示相对于当前位置
试试:
panel.findElement(By.xpath(“.//div[@class='foo2'])
使用后代如何
panel.findElement(By.xpath("//div[@class='panel']/descendant::div[@class='foo2']"));
Source或者,你可以使用更干净的CSS解决方案。@OP.
By.cssSelector(“div.foo2”)
@sircapsalot如果我们追求“干净”,那么我认为By.className(“foo2”)
胜出。当然,我们也可以走“不那么干净”的路线。By.cssSelector(“div[class~='panel']>div[class~='heading']>div[class]:n子(3)”
;)
实际上,由于感兴趣的div不是面板的直接子对象,XPath需要是//div[@class='foo2']
,或者/div/div[@class='foo2']
,或者/*/div[@class='foo2']
,等等。
panel.findElement(By.xpath("//div[@class='panel']/descendant::div[@class='foo2']"));