Selenium 如何分别选择具有相同类的每个 div?

seleniumautomation testingtesting tools更新于 2026/1/23 19:37:17

借助 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();
      //隐式等待
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL 启动
      driver.get("https://www.justdial.com/Bangalore/Bakeries");
      // 识别具有相同类的 div 元素
      List<WebElement> l = driver.findElements(By.className("store-details"));
      // 列表迭代
      System.out.println("Elements are: ");
      for(int j = 0; j< l.size(); j++) {
         //标识单独的 div
         String v = l.get(j).getText();
         System.out.println(&"元素为:");
         System.out.println(v);
      }
      //关闭浏览器
      driver.close();
   }
}

输出


相关文章