如何使用 Java 检查 DOM 上的元素是否在 Selenium 的前景中?
How to check whether an element on the DOM is in the foreground in Selenium using Java?
有没有办法检查元素是否在前景中?
当我在弹出窗口 window 中输入值并单击 "Save and Continue" 时,
我检查了 "Cancel" 按钮( 上图中突出显示的 )是否已启用,并且还尝试了另一个检查以查看它是否显示。
driver.findElement(By.xpath("//input[contains(@id,'Cancel')]")).isEnabled();
driver.findElement(By.xpath("//input[contains(@id,'Cancel')]")).isDisplayed();
系统需要一些加载时间才能让此弹出窗口消失并重新聚焦到主窗口 window。
但即使在弹出窗口消失之前,检查(WebDriver wait
)我检查 "Cancel" 按钮是否 enabled/is 显示,return true 并继续进一步执行。
如果我输入 Thread.sleep
2 秒,它绝对可以正常工作。但我不想无条件地停止执行。所以现在我需要找出是否有任何方法可以检查元素是否确实在前景中并且处于焦点中。
有人可以帮忙吗?
您需要添加等待弹窗消失的时间。代码应如下所示:
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("XPath of popup")));
希望对您有所帮助!
有没有办法检查元素是否在前景中?
当我在弹出窗口 window 中输入值并单击 "Save and Continue" 时, 我检查了 "Cancel" 按钮( 上图中突出显示的 )是否已启用,并且还尝试了另一个检查以查看它是否显示。
driver.findElement(By.xpath("//input[contains(@id,'Cancel')]")).isEnabled();
driver.findElement(By.xpath("//input[contains(@id,'Cancel')]")).isDisplayed();
系统需要一些加载时间才能让此弹出窗口消失并重新聚焦到主窗口 window。
但即使在弹出窗口消失之前,检查(WebDriver wait
)我检查 "Cancel" 按钮是否 enabled/is 显示,return true 并继续进一步执行。
如果我输入 Thread.sleep
2 秒,它绝对可以正常工作。但我不想无条件地停止执行。所以现在我需要找出是否有任何方法可以检查元素是否确实在前景中并且处于焦点中。
有人可以帮忙吗?
您需要添加等待弹窗消失的时间。代码应如下所示:
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("XPath of popup")));
希望对您有所帮助!