Selenium 中 find Element 和 find Elements 之间的区别


在 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();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL launch
      driver.get("https://tutorialspoint.com/upsc_ias_exams.htm");
      //identify single element
      WebElement elm = driver.findElement(By.tagName("h2"));
      String s = elm.getText();
      System.out.println("Get text on element: " + s);
      //identify all elements with tagname
      List<WebElement> i = driver.findElements(By.tagName("img"));
      //count
      int c = i.size();
      System.out.println("Number of images: " + c);
      //browser close
      driver.close();
   }
}

输出

更新于: 2021 年 6 月 25 日

5K+ 浏览量

开启你的 职业道路

完成课程认证

开始
广告