如何在 Selenium Webdriver 中创建 JavaScript 执行器来使元素可见?

seleniumautomation testingtesting tools

我们可以在 Selenium Webdriver 中创建 JavaScript 执行器来使元素可见。隐藏元素的 style 属性值为 display: none。

为了使元素在页面上可见,我们将 style 属性值设置为 block/inline/flex/inline-block。让我们看一下可见元素的 HTML 代码(style=display:block)−

现在,点击"隐藏"按钮后,"隐藏/显示示例"编辑框将在页面上不可见。现在让我们看看隐藏/显示示例编辑框在隐藏状态下的 HTML 代码 (style= display: none) −

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();
      //隐式等待
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //启动 URL
      driver.get("https://learn.letskodeit.com/p/practice");
      WebElement l = driver.findElement(By.id("displayed-text"));
      // Javascript 执行器使隐藏元素可见
      JavascriptExecutor j = (JavascriptExecutor) driver;
      j.executeScript("document.getElementById('displayed-text').style.display='block';");
      //验证元素是否可见
      boolean b = l.isDisplayed();
      if(b){
         System.out.println("Element is visible");
      }else{
         System.out.println("Element is not visible");
      }
      driver.quit();
   }
}

输出


相关文章