如何使用 Selenium 分别选择具有相同类名的每个 div?
我们可以借助 Selenium webdriver 分别选择具有相同类名的每个 div。在 html 代码中,我们经常会发现多个 div 元素具有相同值的 class 属性。
让我们看看具有 div 标签且 class 属性设置了相同值的元素的 html 代码(如图像中突出显示的那样)。class 属性的值为 - colsm-5 col-xs-8 store-details sp-detail paddingR0。

为了分别识别这些 div 元素中的每一个,我们将使用 findElements 方法并将 class 属性的值作为参数传递给此方法。findElements 方法返回一个匹配元素列表。我们必须遍历此列表并分别识别每个 div。
语法
List<WebElement> l =
driver.findElements(By.className("store-details"));示例
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import java.util.List;
public class DivSameCls{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver",
"C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
//implicit wait
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//URL launch
driver.get("https://www.justdial.com/Bangalore/Bakeries");
// identify div elements with same class
List<WebElement> l = driver.findElements(By.className("store-details"));
// list iteration
System.out.println("Elements are: ");
for(int j = 0; j< l.size(); j++) {
//identify separate div
String v = l.get(j).getText();
System.out.println("Elements are: ");
System.out.println(v);
}
//browser close
driver.close();
}
}输出

广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP