2016-04-25 234 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()... 函数让你走出困境