簡體   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