如何使用 Selenium WebDriver 点击隐藏的元素?
seleniumautomation testingtesting tools更新于 2026/2/10 8:07:17
我们可以点击 Selenium WebDriver 隐藏的元素。隐藏元素存在于 DOM 中,但在页面上不可见。隐藏元素通常由 CSS 属性 style="display:none;" 定义。如果元素是表单 tag 的一部分,则可以通过将属性 type 设置为值 hidden 来隐藏它。
默认情况下,Selenium 无法处理隐藏元素,并且在处理它们时会抛出 ElementNotVisibleException。Javascript Executor 用于处理页面上的隐藏元素。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);
// 识别元素并点击
driver.findElement(By.id("hide-textbox")).click();
// 带有 executeScript 方法的 Javascript 执行器类
JavascriptExecutor j = (JavascriptExecutor) driver;
// 识别元素并设置值
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()
}
}
输出


