在我的應用程序中,當我點擊任何元素時,顯示等待的圖像。我可以創建一個表達式等待等待該圖像消失,但我必須在每次點擊代碼後編寫它。我想創建一個隱含的等待。這樣我就可以避免每次都寫這些代碼。自定義Selenium WebDriver隱式等待加載頁面消失
請幫忙。提前致謝 !!
在我的應用程序中,當我點擊任何元素時,顯示等待的圖像。我可以創建一個表達式等待等待該圖像消失,但我必須在每次點擊代碼後編寫它。我想創建一個隱含的等待。這樣我就可以避免每次都寫這些代碼。自定義Selenium WebDriver隱式等待加載頁面消失
請幫忙。提前致謝 !!
之間存在隱含和明確等待一個顯著差異。尋找元素明確的等待總是最好的選擇。我建議寫一個自定義的finElement()
方法,其中有明確的等待烘烤,以便您不必每次都寫明確的等待。你不希望在任何地方使用隱式等待,因爲如果元素不在那裏,它會給你的測試執行帶來性能問題。
只需應用"Extract method"重構方法。創建一個單獨的可重用函數/方法,除了單擊一個元素之外,還會等待等待圖像的不可見性。
下面是一個簡單的例子(應該有了一定的提高):
public void clickAndWait(WebDriver driver, By by) {
driver.findElement(by).click();
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("waiting_image")));
}
請詳細介紹一下「Extract method」重構方法。謝謝 –
@virendrachaudhary增加了一個簡單的例子,希望至少給你一個出發點。 – alecxe
非常感謝你 –
你可以給我一個這樣的自定義findElement()方法的例子嗎?謝謝 –