我正在处理一个非常混乱的页面结构,而我所困的片段看起来像这样:
<div>
<h3>...</h3>
<ul>...</ul>
<h3>...</h3>
<ul>...</ul>
...
</div>
我想得到一个<ul>
元素,所以我可以深入挖掘它并从中检索我真正需要的实际值(它里面有一个表)。目前,我能够获得<h3>
前面的<ul>
元素。由于ul-elements没有任何我可以用来直接获取它们的唯一标识符,我希望通过获取h3-tag之后的元素(在同一级别上)来实现它。有没有办法得到似乎是nextElementSibling的东西?
谢谢!
NB! h3和ul元素没有严格的序列号 - 它们之前可能有也可能没有几个元素,所以第n个孩子似乎不是那里的选择。
答案 0 :(得分:2)
您可以使用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")));
希望有所帮助!