【问题标题】:WebDriverWait always waits the default 60 seconds, not the specified amountWebDriverWait 总是等待默认的 60 秒,而不是指定的时间
【发布时间】:2015-04-04 02:34:55
【问题描述】:

使用 Selenium 的 WebDriverWait 功能并尝试更改等待时间。我将它设置为使用 10 秒的时间,但它仍然等待 60 秒。我还将隐式等待更改为 120 秒,但仍将使用 60 秒。我还缺少另一个设置吗?不确定我是否做错了什么或者 WebDriver 代码中是否存在错误。我也使用 PhantomJS 作为驱动程序。还检查了 IEDriver,同样的问题。

这就是 WebDriverWait 的使用方式:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementExists(By.TagName("span")));

【问题讨论】:

    标签: c# selenium-webdriver phantomjs


    【解决方案1】:

    您提到您正在使用 隐式 等待。如果是这样,那么只要 driver 实例没有被杀死,这可能是由于 implicit 等待与驱动程序实例相关联的问题。并且混合 implicitexplicit 等待被认为是不好的做法,并且可能会导致您可能错过的一些不需要的结果。因此,如果您在实例化驱动程序后在其他地方使用它,请删除 driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

    【讨论】:

    • 是的 - 那是票!我确实将隐式等待设置为 120 秒,然后将其删除。但是,隐式等待仍然没有将等待时间从 60 秒更改为 120 秒 - 所以这仍然是一个问题。
    • 那么您对explicitimplicit 等有疑问吗?
    • 两者。我有一个 ImplicitlyWait 命令以及 WebDriverWait。当我删除 ImplicitlyWait 命令时,WebDriverWait 的行为符合预期。但是,当移除 WebDriverWait 并重新添加 ImplicitlyWait 命令(设置为 120 秒)时,等待时间仍然是 60 秒。希望我解释清楚了。
    • 不要使用 ImplicitlyWait(没有理由,只是没用过)。当您使用 driver.Manage() 而不是 ImplicityWait 命令时,隐式等待可以正常工作。
    • 经过测试。在文档中未找到任何指示上限的内容。
    猜你喜欢
    • 2017-06-28
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多