Selenium 中 find Element 和 find Elements 的区别

seleniumautomation testingtesting tools更新于 2026/1/14 0:07:17

Selenium webdriver 中的 findElement 和 findElements 方法存在差异。它们都可以用于定位网页上的元素。findElement 指向单个元素,而 findElements 方法返回匹配元素的列表。

findElements 的返回类型是列表,而 findElement 的返回类型是 WebElement。如果没有匹配的元素,findElement 会抛出 NoSuchElementException 异常,而 findElements 方法会返回一个空列表。

findElements 方法的一个典型用法是计算图片总数或通过循环迭代访问每张图片。

语法

WebElement i = driver.findElement(By.id(<img-loc"));
List<WebElement> s =
driver.findElements(By.tagName("img"));

代码实现

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 FindElementFindElementMthds{
   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.tutorialspoint.com/upsc_ias_exams.htm");
      //识别单个元素
      WebElement elm = driver.findElement(By.tagName("h2"));
      String s = elm.getText();
      System.out.println("Get text on element: " + s);
      // 识别所有带有标签名的元素
      List<WebElement> i = driver.findElements(By.tagName(&"img"));
      // 计数
      int c = i.size();
      System.out.println(&" 图片数量: &" + c);
      // 关闭浏览器
      driver.close();
   }
}

输出


相关文章