如何在 Selenium WebDriver 中点击隐藏元素?
seleniumautomation testingtesting tools
我们可以在 Selenium WebDriver 中点击隐藏元素。在 DOM 中,隐藏元素是指未显示在页面上的元素。CSS 属性 style 应将隐藏元素的值设置为 display:none。此外,如果隐藏元素位于表单标签内,则可以通过将属性 type 设置为 hidden 来隐藏它。
ElementNotVisibleException 异常由 Selenium 在处理隐藏元素时抛出。因此,可以使用 JavaScript 执行器来访问和处理这些元素。Selenium 使用 executeScript 方法来执行 JavaScript 命令。要执行的命令将作为参数传递给该方法。
让我们假设一个场景,最初有两个按钮 − 隐藏和显示以及编辑框。点击"隐藏"按钮后,下方的编辑按钮将在页面上隐藏。

点击"隐藏"后,页面变为 −

让我们尝试在隐藏的编辑框中输入一些文本。首先,我们将使用 getElementById 方法找到一个隐藏的编辑框,并利用方法 value 在其中输入一些文本。
语法
executor.executeScript ("document.getElementById('id').value='QA';");
示例
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 ElementHiddenClk{
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);
driver.get("https://learn.letskodeit.com/p/practice");
// 识别元素
driver.findElement(By.id("hide−textbox")).click();
// Javascript 执行器类
JavascriptExecutor js = (JavascriptExecutor) driver;
// 识别元素并设置值
js.executeScript
("document.getElementById('displayed−text').value='QA';");
String str = (String) js.executeScript("return document.getElementById('displayed−text').value");
System.out.print("Value entered in hidden element: " +str);
driver.close()
}
}
输出


