2014-11-06 54 views
0

條件 - 單擊按鈕/ driver.navigate.back()時的示例是否包含在時間單位過期(WebDriverWait的超時)中?WebDriverWait可以在超時時定義一個條件嗎?

示例: 對於以下語句 - WebDriverWait wait60 = new WebDriverWait(driver,60); wait60.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.locator)));

如果元素在60秒內未加載到網頁上,我希望執行語句driver.navigate.back()。任何定義這種類型的語句的方法(比如在類級別),所有wait60.until條件在超時時導致相同的定義語句?

+0

你不想使用try catch? – Saifur 2014-11-06 16:04:46

回答

1

我認爲這不包括在WebDriverWait功能。我可能會使用try-catch異常處理,並且當您捕獲timeoutException時,然後致電driver.navigate.back()

您可以創建一個方法來執行此操作並隨時調用它。

0

把它放在這樣一個try-catch塊:

try{ 
    WebDriverWait wait60 = new WebDriverWait(driver, 60); 
    wait60.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.locator))); 
}catch(Exception e){ 
    System.out.println("Element not found in due time. "+e.getMessage); 
    driver.navigate().back(); 
} 

如果元件沒有在適當的時候發現,一個TimeoutException異常會被拋出,它會在catch塊隨後處理。此外,之後,瀏覽器導航回來。

+1

將引發TimeoutException而不是NoSuchElementExeption。我編輯過這個。 – Sighil 2014-11-07 09:43:54

+0

謝謝@lost .. :) – Subh 2014-11-07 09:52:55

相關問題