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

相关文章
打印
下一节:在 Selenium WebDriver 测试中,使用 Java 实现 waitForVisible/waitForElementPresent 的等效方法是什么? ❯❮ 上一节:使用 Selenium 中的 SpecFlow 进行自动化软件测试

