【问题标题】:C# Selenium ChromeDriver not waiting explicitly for timespan setC# Selenium ChromeDriver 没有明确等待时间跨度设置
【发布时间】:2016-04-25 11:25:23
【问题描述】:

我根本没有设置隐式等待。我运行以下代码:

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 的文档后,我知道您不应该将隐式等待和显式等待混为一谈,但我确定我不会在这里这样做吗?

【问题讨论】:

  • 尝试使用这种其他方式来调用等待,只是为了测试它是否会在 60 秒后抛出异常:var something = wait.Until(x => x.FindElement(By.Name("__CONFIRM__")).IsVisible);
  • IWebElement 不包含 IsVisible 的定义
  • 我的错,正确的名字是“Displayed”。
  • 相同,等待时间为 60 秒。最终异常是:对远程 WebDriver 服务器的 URL localhost:12303/session/<GUID>/element 的 HTTP 请求在 60 秒后超时。

标签: c# selenium wait selenium-chromedriver


【解决方案1】:

事实证明,因为在某些情况下,驱动程序运行的窗口是关闭的,驱动程序没有找到它应该找到的内容,并且在内置的隐式 60 秒后超时。

专业提示:如果窗口可以关闭,请务必检测到这一点并使用 Driver.SwitchTo()... 让你摆脱困境的功能

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2018-02-12
    相关资源
    最近更新 更多