默認情況下,Selenium IDE中的Java Junit導出器將設置一個30秒implicit wait。這意味着,測試元素的斷言不存在將導致30秒的不必要的延遲。在Selenium中快速聲明不存在元素
我嘗試過使用顯式等待(WebDriverWait
類),超時時間爲1,但仍需要大約30秒。
因此,是否有繞過隱式等待各種定位器(即By
類)?
默認情況下,Selenium IDE中的Java Junit導出器將設置一個30秒implicit wait。這意味着,測試元素的斷言不存在將導致30秒的不必要的延遲。在Selenium中快速聲明不存在元素
我嘗試過使用顯式等待(WebDriverWait
類),超時時間爲1,但仍需要大約30秒。
因此,是否有繞過隱式等待各種定位器(即By
類)?
boolean isElementPresent(By by) {
try {
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
driver.findElement(by);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return true;
}
catch(Exception e){
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return false;
}
}
噁心,但作品。似乎隱含地等待的每個命令應該能夠被重載。但查找元素沒有2參數版本。也許它在By中?
未設置隱等待,如果你使用明確的:
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
但其他代碼可能取決於30秒隱含等待... –
仍然是一個很好的提示,謝謝。 – Steve