2015-05-19 54 views
0

我有一个非常混乱的页面结构和我被困在片段的工作看起来是这样的:有没有办法在Java中使用Selenium Webdriver调用nextElementSibling?

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

我想要得到的<ul>元素之一,所以我可以深入挖掘和检索我真正需要的实际价值(它里面有一张表)。目前,我能够获得<h3>元素,该元素位于我要查找的<ul>之前。由于ul元素没有任何可用于直接获取它们的唯一标识符,我希望通过获取h3标签之后的元素(在同一级别上)来实现它。有没有办法得到似乎是nextElementSibling的东西? 谢谢!

注意! h3和ul元素没有严格的序列号 - 他们之前可能有或可能没有几个元素,因此获得第n个孩子似乎不是那里的选择。

回答

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"))); 

希望帮助!

+0

这样做的伎俩,谢谢! –

相关问题