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