如何使用 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(); } }
輸出
廣告