場景:我有一個像登錄到某個頁面之後的場景,一個配置文件更新按鈕會間歇性出現,我需要單擊它。事情就像是如果那個按鈕會出現,我必須點擊否則我必須離開那個部分繼續前進。我寫了一個邏輯來處理下面的情況。Selenium:如何驗證元素是否存在
public boolean isElementPresent(By locatorKey) {
try {
getDriver().findElement(locatorKey);
return true;
} catch (org.openqa.selenium.NoSuchElementException e) {
return false;
}
}
如果該元素將出現,它將返回true,否則將返回false ..上面的代碼工作正常......但問題是,它正在圍繞一個分返回true或false ..假設我用五個地方在我的腳本,以便不必要我的劇本在等待5分鐘......我也曾嘗試下面的代碼
getDriver().findElement(locator).isDisplayed();
但我面臨着同樣的問題...代碼工作罰款,但它也需要大約1分鐘才能返回命令...
是是否有任何有效的方法來處理這種情況,而無需等待一分鐘才能獲得狀態?
你在使用隱式等待嗎?換句話說,你的代碼中有一行代碼,看起來像'driver.manage()。timeouts()。implicitlyWait(60000)'?如果是這樣,那就是爲什麼你的等待需要很長時間才能返回。 – JimEvans
該代碼不需要一分鐘。事實上,它可能會立即執行,然後返回false,因爲該元素尚未出現。你的問題可能在別的地方。 – MxyL
隱含的等待在這裏聽起來是一個可行的罪魁禍首 – Arran