Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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
在SeleniumWebDriver中是否有一种使用Java调用nextElementSibling的方法?_Java_Selenium Webdriver - Fatal编程技术网

在SeleniumWebDriver中是否有一种使用Java调用nextElementSibling的方法?

在SeleniumWebDriver中是否有一种使用Java调用nextElementSibling的方法?,java,selenium-webdriver,Java,Selenium Webdriver,我正在处理一个非常混乱的页面结构,而我被卡住的片段看起来是这样的: <div> <h3>...</h3> <ul>...</ul> <h3>...</h3> <ul>...</ul> ... </div> ... … ... … ... 我想得到一个元素,这样我就可以更深入地研究它,并从中检索我真正需要的实际值(它里面有一个表)。目

我正在处理一个非常混乱的页面结构,而我被卡住的片段看起来是这样的:

<div>
    <h3>...</h3>
    <ul>...</ul>
    <h3>...</h3>
    <ul>...</ul>
    ...
</div>

...
...
...
我想得到一个
元素,这样我就可以更深入地研究它,并从中检索我真正需要的实际值(它里面有一个表)。目前,我能够获得我正在寻找的
之前的
元素。由于ul元素没有任何唯一的标识符,我无法直接获取它们,因此我希望通过获取h3标记之后的元素(在同一级别上)来实现这一点。有没有一种方法可以获得似乎是nextElementSibling的东西? 谢谢大家!


注意!h3和ul元素没有严格的序列号——它们前面可能有也可能没有几个元素,因此获得第n个子元素似乎不是一个选项。

您可以通过xpath或执行一些javascript来实现这一点

Xpath:

driver.find(By.xpath("//div/h3/following-sibling::ul[1]"));
JavaScript:

JavaScriptExecutor jsExec = (JavaScriptExecutor)driver;
WebElement ulElement = jsExec.executeScript("return arguments[0].nextSibling;", driver.find(By.cssSelector("div h3")));
希望有帮助