WebDriverWait 总是等待默认的 60 秒,而不是指定的时间
WebDriverWait always waits the default 60 seconds, not the specified amount
使用 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")));
您提到您正在使用 隐式 等待。如果是这样,那可能是问题,因为只要 driver 实例未被终止,implicit wait 就与驱动程序实例相关联。混合 implicit 和 explicit 等待被认为是不好的做法,可能会导致一些您可能错过的不需要的结果。因此,如果您在实例化驱动程序后在其他地方使用它,请删除 driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
使用 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")));
您提到您正在使用 隐式 等待。如果是这样,那可能是问题,因为只要 driver 实例未被终止,implicit wait 就与驱动程序实例相关联。混合 implicit 和 explicit 等待被认为是不好的做法,可能会导致一些您可能错过的不需要的结果。因此,如果您在实例化驱动程序后在其他地方使用它,请删除 driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));