繁体   English   中英

如何使用Java检查DOM上的元素是否在Selenium中的前台?

[英]How to check whether an element on the DOM is in the foreground in Selenium using Java?

有没有一种方法可以检查元素是否在前景中?

截图

当我在弹出窗口中输入值并单击“保存并继续”时,我进行了检查以查看“取消”按钮( 在上图中高亮显示 )是否已启用,并且还尝试了另一项检查以查看是否显示。

driver.findElement(By.xpath("//input[contains(@id,'Cancel')]")).isEnabled(); 
driver.findElement(By.xpath("//input[contains(@id,'Cancel')]")).isDisplayed();

系统需要一些加载时间,该弹出窗口才会消失,并使焦点重新回到主窗口上。

但是,即使在弹出窗口消失之前,我放置的check( WebDriver wait )还是查看了“取消”按钮是否已启用/显示,它们都返回true并继续执行进一步操作。

如果我将Thread.sleep放置2秒钟,它绝对可以正常工作。 但是我不想无条件地暂停执行。 因此,现在我需要找出是否有任何方法可以检查元素实际上是否在前景中并且是否在焦点上。

有人可以帮忙吗?

您需要添加一个等待,直到弹出窗口消失。 该代码应如下所示:

wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("XPath of popup")));

希望对您有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM