使用 XPath 在 Selenium 中查詢元素和查詢元素集
findElement(By.xpath) 方法用於標識與作為該方法引數傳遞的 xpath 定位器匹配的元素。findElements(By.xpath) 方法用於標識與作為該方法引數傳遞的 xpath 定位器匹配的元素集合。
findElement(By.xpath) 方法返回一個 Web 元素,而 findElements(By.xpath) 方法返回一個 Web 元素列表。如果找不到匹配元素,findElement(By.xpath) 方法將丟擲異常。如果找不到從 findElements(By.xpath) 方法獲得的匹配元素,則返回一個空元素列表。
讓我們嘗試確定 ul 標籤的子元素數量以及 ul 的第一個子元素(包含文字“精選讀物”的 li[1])。
語法
List<WebElement> n = driver.findElements(By.xpath("//ul[@class=' toc reading']/li")); WebElement m =driver.findElement(By.xpath("//ul[@class=' toc reading']/li[1]"));
示例
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import java.util.concurrent.TimeUnit; import java.util.List; public class XpathFindElment{ public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); //implicit wait driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //URL launch driver.get("https://tutorialspoint.tw/about/about_careers.htm"); // identify elements with findElements xpath List p = driver.findElements(By.xpath("//ul[@class='toc reading']/li")); //count of list of matching elements int s = p.size(); //identify element with xpath WebElement m = driver.findElement(By.xpath("//ul[@class='toc reading']/li[1]")); System.out.println("Element text is: "+ m.getText()); driver.quit(); } }
輸出
廣告