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.tw/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(); } }
輸出
廣告