gpt4 book ai didi

java - 不可见元素被 Selenium WebDriver、Java 检测为 isDisplayed

转载 作者:行者123 更新时间:2023-11-30 03:23:47 25 4
gpt4 key购买 nike

我有以下包含表单的 HTML 代码:

<div id="bodyLeftBlock" class="">
<form id="signUpForm" class="" method="post" action="/en/signup/post/" novalidate="novalidate" style="display: none;">
<input class="" type="hidden" value="am" name="systemsShortCutName">
<label class="inputTitle translate" translatekey="NAME">Name</label>
....
....

有时表单会出现在页面上,在这种情况下,style="display: none;" 不会出现在页面代码上。

当表单隐藏时,代码中会出现style="display: none;"

我需要区分表单是否已呈现。

尝试了 driver.findElement(By.id("signUpForm")).isDisplayedisEnabled 和其他一些选项 - 永远无法通过我的代码区分是表单呈现还是不是。

这里出了什么问题,有什么技巧吗?

最佳答案

driver.findElement(By.id("signUpForm")).isDisplayed();

绝对是定义元素是否可见的最可靠、最真实的方法。

请注意,isDisplayed()背后有一个相当复杂的逻辑,请参阅:Element Displayedness .

多个“显示度”指标中,有:

If the computed value of the display style property is "none", return false.

<小时/>

您还可以尝试等待表单变得可见:

WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("signUpForm")));

或者,隐形:

WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("signUpForm")));

关于java - 不可见元素被 Selenium WebDriver、Java 检测为 isDisplayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30742972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com