如何使用Selenium WebDriver点击隐藏的元素?
我们可以使用Selenium webdriver点击隐藏的元素。隐藏元素是指存在于DOM中但在页面上不可见的元素。大多数隐藏元素都是通过CSS属性**style="display:none;"**定义的。如果元素是表单**标签**的一部分,可以通过将属性**type**设置为值**hidden**来隐藏它。
Selenium默认情况下无法处理隐藏元素,在处理隐藏元素时会抛出**ElementNotVisibleException**异常。可以使用Javascript执行器来处理页面上的隐藏元素。Selenium使用**executeScript**方法运行Javascript命令。要运行的命令作为参数传递给该方法。
首先,可以使用**getElementById**方法来识别元素。接下来,要向字段输入文本,可以使用**value**方法将值设置为字段。
语法
executor.executeScript
("document.getElementById('txt').value='Selenium'");让我们来看一个例子,其中有两个按钮**隐藏**和**显示**。按钮下面还有一个编辑框。单击“隐藏”按钮后,编辑框将从页面消失。

现在让我们在隐藏的文本框中输入一些文本。

示例
代码实现。
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 ElementHidden{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://learn.letskodeit.com/p/practice");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
// identify element and click
driver.findElement(By.id("hide-textbox")).click();
// Javascript executor class with executeScript method
JavascriptExecutor j = (JavascriptExecutor) driver;
// identify element and set value
j.executeScript ("document.getElementById('displayed-text').value='Selenium';");
String s = (String) j.executeScript("return document.getElementById('displayed-text').value");
System.out.print("Value entered in hidden field: " +s);
driver.close()
}
}输出

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