如何在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();
}
}输出

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP