我正在寫一個測試,我想驗證一個元素不存在於頁面上(顯示或以其他方式)。我讀過各種文章(如this one)如何使用空白或不空白列表執行元素檢測。這適用於驗證元素存在的相反測試。然而,當元素不存在,我一直得到一個WebDriverException超時後紡紗的60秒:See screenshot here當元素不在DOM中時,爲什麼Selenium Webdriver findElements(By.Id)會超時?
元素檢測功能是這樣的:
public bool isButtonPresent(string buttonType)
{
switch (buttonType)
{
case "Button 1":
return !(Driver.FindElements(By.Id("Button 1 ID Here")).Count == 0);
case "Button 2":
return !(Driver.FindElements(By.Id("Button 2 ID Here")).Count == 0);
case "Button 3":
return !(Driver.FindElements(By.Id("Button 3 ID Here")).Count == 0);
}
return false;
}
謝謝您的時間!
順便說一句,我正在運行Selenium 2.53.1 – Elininja
似乎隱式等待被激活。在調用FindElements之前關閉它:driver.Manage()。Timeouts()。ImplicitlyWait(TimeSpan.FromMilliseconds(0));' –
這就像一個魅力Florent一樣工作,謝謝!如果你可以把這個解決方案放在答案中,我很樂意標記它。另外,如果你有更詳細的解釋爲什麼這會起作用,那對我和其他未來的觀衆來說都是很好的選擇。 – Elininja