【问题标题】:Selenium - 'ITimeouts.ImplicitlyWait(TimeSpan)' is obsoleteSelenium - 'ITimeouts.ImplicitlyWait(TimeSpan)' 已过时
【发布时间】:2017-02-21 13:27:27
【问题描述】:

我使用 C# 项目设置隐含:

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));

一切正常。当我安装新版本的 selenium-dotnet-3.1.0 时,我的声音出现了这个错误:

警告 CS0618 'ITimeouts.ImplicitlyWait(TimeSpan)' 已过时:'这 方法将在未来的版本中删除。请设置 而是 ImplicitWait 属性。'

如何设置全局 ImplicitlyWait 时间?

【问题讨论】:

    标签: c# .net unit-testing selenium selenium-webdriver


    【解决方案1】:

    我遇到了同样的问题。您可以使用以下代码:

    driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
    

    【讨论】:

    • 感谢您的解决方案。
    • 对了,下次检查错误,最后一句告诉你需要使用什么。此外,当您使用 F12 导航到原始源代码时,您可以在那里阅读。
    • 我的文件夹 Selenium 中的驱动程序,但这些程序在版本 selenium-dotnet-3.1.0 中不起作用: IWebDriver driver = new InternetExplorerDriver(@"C:\Selenium\" ); IWebDriver driver = new ChromeDriver(@"C:\Selenium\"); IWebDriver driver = new EdgeDriver(@"C:\Selenium\");由于驱动设置正确?
    • 是的,我猜如果您使用较旧的 NuGet 包,它将需要旧语法。
    • 好吧,我使用我复制的语法,因为我们使用的是最新版本。无法升级?
    【解决方案2】:

    我使用 Selenium.WebDriver v3.2.0 包(来自 NuGet),但我不能使用 ImplicitlyWait 属性:

    RemoteDriver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), _capabilities);
    driver = new EventFiringWebDriver(RemoteDriver);
    driver.Manage().Timeouts().ImplicitlyWait = TimeSpan.FromSeconds(defaultTimeOut);
    

    返回:无法分配给“ImplicitlyWait”,因为它是“方法组”

    但 driver.Manage().Timeouts().ImplicitlyWait(defaultTimeOut) 效果很好,但会显示有关新用法的警告。

    【讨论】:

      【解决方案3】:

      也可以使用add方法并传入TimeSpan:

      Driver.Manage().Timeouts().ImplicitWait.Add(TimeSpan.FromSeconds(20));
      

      【讨论】:

        猜你喜欢
        • 2017-07-22
        • 2018-09-26
        • 1970-01-01
        • 2019-12-02
        • 2019-01-14
        • 1970-01-01
        • 2014-05-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多