如何使用 webdriver 來獲取元素的所有後代?


我們可以使用 Selenium webdriver 獲取一個元素的所有後代。首先,我們需要使用任何定位符(如 id、類、名稱、xpath 或 css)來識別父元素。然後我們必須用 **findElements(By.xpath())** 方法來識別後代。

我們可以透過用父元素對其進行本地化,然後將 ( .//*) 作為引數傳遞給 **findElements(By.xpath())** 來從父元素中找出後代。

語法

element.findElements(By.xpath(".//*"))

讓我們在下面的 html 程式碼中識別 ul 元素後代的標籤名稱 -

示例

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;

public class DescendantElements{
   public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      driver.get("https://tutorialspoint.tw/about/about_careers.htm");
      // identify element
      WebElement p=driver.findElement(By.xpath("//ul[@class='toc chapters']"));
      //identify descendants with .//* expression in xpath
      List d = p.findElements(By.xpath(".//*"));
      // iterate descendants
      for ( WebElement j : d ) {
         //getTagName() to descendant tags
         System.out.println(j.getTagName());
      }
      driver.close();
   }
}

輸出

更新於:18-Sep-2020

1K+ 瀏覽

開啟你的職業生涯

完成課程,獲得認證

開始學習
廣告