WebDriver:使用Java 等待元素
簡介
在自動化測試中,它是自動化測試中,它是自動化測試中,它是自動化測試在與元素互動之前確保元素存在且可見至關重要。本文探討了使用隱性等待時所面臨的挑戰,並提出了一種明確等待顯示元素的替代方法。
隱式等待
最初使用隱式等待處理等待元素的問題:
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.findElement(By.id(prop.getProperty(vName))).click();
但是,隱式等待有限制。它們等待某個元素在指定的超時時間內出現,但如果未找到該元素,它們會繼續搜尋它,這可能會導致等待時間延長。
明確等待
為了解決這些限制,可以使用明確等待策略。一種方法涉及使用定時循環:
for (int second = 0;; second++) { Thread.sleep(sleepTime); if (second >= 10) fail("timeout : " + vName); try { if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed()) break; } catch (Exception e) {...} } driver.findElement(By.id(prop.getProperty(vName))).click();
雖然這種方法提供了對等待時間的明確控制,但它可能很麻煩並且容易受到競爭條件的影響。
WebDriverWait
更強大、更有效率的方法是使用WebDriverWait class:
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
WebDriverWait class:
WebDriverWait class:
以上是WebDriverWait 如何使用 Java 改進 Selenium WebDriver 中的元素等待?的詳細內容。更多資訊請關注PHP中文網其他相關文章!