Selenium 3.8.0 wait.until调用抛出异常

时间:2017-12-15 10:06:39

标签: c# selenium selenium-webdriver

早上好, 我有这个简单的代码片段:

driver.Navigate().GoToUrl("https://www.mysecretwesite.com/");
            wait = new WebDriverWait(driver, TimeSpan.FromSeconds(300));
            element = wait.Until(ExpectedConditions.ElementToBeClickable(By.PartialLinkText("partial link text")));

由于网站需要身份验证,因此时间跨度很高。 这适用于Firefox 52和Selenium 3.0.1,但是,在更新到Firefox 57和Selenium 3.8.1之后,wait.until调用会引发异常。此外,立即抛出异常,而不等待wait变量中设置的300秒。 我找不到身份验证表单的代码,这是它的样子: enter image description here 我正在使用Win 7。

1 个答案:

答案 0 :(得分:0)

虽然Automating一个过程,但通过Windows Basic Authentication

跳过 Automation Script 并不是一个好习惯。

在您调用的代码中:

driver.Navigate().GoToUrl("https://www.mysecretwesite.com/");

在达到 'document.readyState' == "complete" 后,WebDriver正在 PartialLinkText("partial link text") 中寻找 HTML DOM 当您尝试通过 Windows Basic Authentication 手动填写凭据时。因此,如果没有 "partial link text" ,您会看到例外

然而,您所看到的例外的英文版本会让我们对处理它的方式有更深入的了解。

根据最佳做法,我们应尝试通过Windows Basic Authentication处理 WebDriver ,具体如下:

driver.Navigate().GoToUrl("http://admin:admin@the-internet.herokuapp.com/basic_auth");

您可以在 Windows Basic Authentication Selenium - Other way to basic authenticate than via urlPython Selenium Alert — Prompt username and password is not working找到详细讨论。