java - 如何使用 Xpath Selenium WebDriver JAVA 获取多个元素(div)?

标签 java selenium xpath arraylist selenium-webdriver

我在从一个 div 中获取多个元素时遇到了一些困难。 如您所见,我得到了 div[1],之后我想在 div[1] 中得到更多的 8 div。但我想用 xpath(同一行)来做到这一点。有人知道吗?

Father = .//*[@id='result']/div[1]

儿子 =

          .//*[@id='result']/div[1]/div[6]
          .//*[@id='result']/div[1]/div[9]
          .//*[@id='result']/div[1]/div[12]
          .//*[@id='result']/div[1]/div[15]
          .//*[@id='result']/div[1]/div[18]
          .//*[@id='result']/div[1]/div[21]
          .//*[@id='result']/div[1]/div[24]
          .//*[@id='result']/div[1]/div[27]

我的代码:

List<String> productName = new ArrayList<String>();
List<WebElement> allProductsName = driver.findElements(
        By.xpath(".//*[@id='result']/div[1]/div[6]"));
for(WebElement w : allProductsName) {
    productName.add(w.getText());
}
System.out.print(productName);

我想象过类似的东西 ".//*[@id='result']/div[1]/div[6],[9]..."

".//*[@id='result']/div[1]/div[6 and 9 ....]"

但是没有用。

最佳答案

当您的产品描述出现在 6、9、12、15、18 中时,使用此代码将以 3 的乘法迭代 6 到 27。

List<String> productName = new ArrayList<String>();


for(int i=6; i<=27; i=i+3)
{

    List<WebElement> allProductsName = driver.findElements(By.xpath(".//*[@id='result']/div[1]/div["+i+"]"));
    for(WebElement w : allProductsName) {
        productName.add(w.getText());
    }
}
System.out.print(productName);

关于java - 如何使用 Xpath Selenium WebDriver JAVA 获取多个元素(div)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40178061/

相关文章:

java - JNA和JNR有什么区别

java - 当我 setBackground(); 时,Slick2d java 游戏崩溃;

python - Selenium IEDriver 接受下载

java - 如何使用Selenium和Java从html中提取文本2?

python - XPATH:段落中的特定单词

python - 仅以 1 对 3 <tr>

java - 提高 Java 程序的性能

java - 更新服务器上的 java

Python 和 Selenium - 在不关闭浏览器的情况下关闭所有选项卡

javascript - 我想要跨度和类的正确 xpath