如何在Selenium Webdriver中建立使元素可見的Javascript執行器?


我們可以建立一個JavaScript執行器,在Selenium webdriver中使元素可見。隱藏元素的style屬性的值設定為display: none。

為了使頁面上的元素可見,我們將style屬性的值設定為block/inline/flex/inline-block。讓我們看看一個可見元素(style= display: block)的html程式碼:

現在,點選“隱藏”按鈕後,“顯示/隱藏示例”編輯框在頁面上變得不可見。現在讓我們看看隱藏狀態(style= display: none)下“顯示/隱藏示例”編輯框的html程式碼:

JavaScript執行器可以使頁面上的同一個元素可見。Selenium使用executeScript方法執行JavaScript命令。

要執行的JavaScript命令作為引數傳遞給此方法。

首先,我們將使用document.getElementById方法識別元素,並將style.display屬性設定為'block'。這將作為引數傳遞給executeScript方法。

語法

JavascriptExecutor j = (JavascriptExecutor)driver;
j.executeScript("document.getElementById('displayed-text').style.display='block';");

示例

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 MakeElementVisible{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
         "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //launch URL
      driver.get("https://learn.letskodeit.com/p/practice");
      WebElement l = driver.findElement(By.id("displayed-text"));
      // Javascript Executor to make hidden element visible
      JavascriptExecutor j = (JavascriptExecutor) driver;
      j.executeScript("document.getElementById('displayed-text').style.display='block';");
      //verify element is visible
      boolean b = l.isDisplayed();
      if(b){
         System.out.println("Element is visible");
      }else{
         System.out.println("Element is not visible");
      }
      driver.quit();
   }
}

輸出

更新於:2021年4月7日

2K+瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告