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();
}
}
输出


