使用 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();
   }
}

輸出

更新於: 2021 年 4 月 6 日

6K+ 瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始
廣告