Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用xpath访问特定的子div?(Selenium Java)_Java_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

如何使用xpath访问特定的子div?(Selenium Java)

如何使用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;"><

我有以下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>
    </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']"));