我在从一个 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/