2016-04-25 233 views
1

我沒有隱式等待設置。我運行以下代碼:C#Selenium ChromeDriver沒有明確等待時間設置

try 
{ 
    var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5)); 
    var something = wait.Until(ExpectedConditions.ElementIsVisible(By.Name("__CONFIRM__"))); 
} 
catch (Exception ex) 
{ 
    var something = ex.Message; 
} 

在60秒後引發異常,而不是5秒。是否有一些需要首先清除的默認隱式等待?

已經通過Selenium的文檔,我知道你不應該混合隱式和顯式的等待,但我相信我在這裏沒有這樣做?

+0

嘗試用這種方式來調用wait,只能測試if它會在60秒後拋出異常:'var something = wait.Until(x => x.FindElement(By.Name(「__ CONFIRM __」))。IsVisible);' –

+0

IWebElement不包含IsVi的定義sible –

+0

我的不好,正確的名字是「顯示」。 –

回答

0

所以事實證明,因爲在某些情況下,驅動程序在運行窗口關閉,司機沒有找到它應該和建於隱含的60秒後是超時

專業技巧:如果窗口可以關閉,一定要檢測到這一點並使用Driver.SwitchTo()... 函數讓你走出困境