如何在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+浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.