Selenium WebDriver - 使用findElements选择webelements(By.xpath

时间:2016-11-29 16:46:06

标签: java selenium webdriver xpath-2.0

我有一个网页,我必须从网页元素中提取一堆名称。我的想法是首先使用" findElements(By.xpath ...",像这样:

)提取所有这些元素
List<WebElement> someElements = driver.findElements(By.xpath("XPATH???"));

所有这些元素都有xPath模式,如下所示:

/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[1]/div[1]/h2/a
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[2]/div[1]/h2/a
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[3]/div[1]/h2/a
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[4]/div[1]/h2/a
/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div[5]/div[1]/h2/a

正如你所看到的,唯一的变化就在于倒数第二个正在改变的div。 我的问题是如何编写这行代码来填充webelement列表,By.xPath()会怎么做?

非常感谢提前!

3 个答案:

答案 0 :(得分:0)

List<WebElement> divs = driver.findElements(By.xpath("/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div"))

答案 1 :(得分:0)

按如下方式更改代码部分 -

List<WebElement> someElements = driver.findElements(By.xpath("/html/body/div[1]/div/div/div[11]/div[1]/div[6]/div/div[1]/h2/a"));

答案 2 :(得分:0)

我不完全确定你在这里想要达到的目标。

如果你想要所有的div:

List<WebElement> someElements = driver.findElements(By.xpath("/html/body/div[1]/div/div/div/div[1]/div[6]/div[*]/div[1]/h2/a"));

如果没有,请向我提供您想要获得的实际元素的示例。