在Selenium中選擇已知元素的父元素。


我們可以使用Selenium webdriver選擇已知元素的父元素。首先,我們必須使用任何定位器(例如id、classname等)來識別已知元素。然後,我們必須使用**findElement(By.xpath())**方法識別其父元素。

我們可以透過使用子元素進行定位,然後將( ./..)作為引數傳遞給**findElement(By.xpath())**方法來識別其父元素。讓我們在下面的HTML程式碼中,透過子元素的標籤名li來識別其父元素的標籤名ul。

我們還可以藉助Javascript Executor來識別已知元素的父元素。我們必須將Javascript命令**return arguments[0].parentNode**和webelement作為引數傳遞給**executeScript**方法。Javascript中的**parentNode**命令用於指向元素的父元素。

示例

使用xpath的程式碼實現

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 ParentElement{
   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 c=driver.findElement(By.xpath("//li[@class='heading']"));
      //identify parent element with ./.. expression in xpath
      WebElement p = c.findElement(By.xpath("./.."));
      //getTagName to get tagname of parent
      System.out.println("Parent tagname is: " + p.getTagName());
      driver.close();
   }
}

使用Javascript Executor的程式碼實現。

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 org.openqa.selenium.JavascriptExecutor;
public class ParentElementJS{
   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 c=driver.findElement(By.xpath("//li[@class='heading']"));
      //identify parent element parentNode expression in Javascript command
      WebElement p = (WebElement) ((JavascriptExecutor) driver).executeScript( "return arguments[0].parentNode;", c);
      //getTagName to get tagname of parent
      System.out.println("Parent tagname is: " + p.getTagName());
      driver.close();
   }
}

輸出

更新於:2020年10月26日

12K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告