何時在Selenium Webdriver中使用顯式等待vs隱式等待?我在用:driver.manage().timeouts().implicitlyWait(180, TimeUnit.SECONDS);但是對于下面的元素,它仍然會不斷失敗 driver.findElement(By.id("name")).clear();
driver.findElement(By.id("name")).sendKeys("Create_title_01");我添加了等待代碼:for (int second = 0;; second++) {
if (second >= 120) fail("timeout");
try { if (isElementPresent(By.id("name"))) break; } catch (Exception e) {}
Thread.sleep(1000);
}不應該隱含等待,直到找到一個元素?如果我使用顯式等待而不是我添加的代碼,它會更好Thread.sleep()嗎?
3 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
隱式等待 - 它是適用于所有元素的全局設置,如果元素在指定時間之前出現,則腳本將開始執行,否則腳本將拋出NoSuchElementException
。在setup方法中使用的最佳方法。只影響By.findelement()
。
Thread.sleep()
- 它將為腳本休眠時間,而不是在腳本中使用的好方法,因為它無條件地睡眠。如果5%的情況下2秒不夠怎么辦?
顯式等待:等待指定包含/屬性更改。當應用程序向系統提供AJAX調用并獲取動態數據并在UI上呈現時,會使用更多。在這種情況下WebDriverWait
是合適的。
添加回答
舉報
0/150
提交
取消