在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")));
希望有帮助