早上好, 我有这个简单的代码片段:
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秒。 我找不到身份验证表单的代码,这是它的样子: 我正在使用Win 7。
答案 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 url
和Python Selenium Alert — Prompt username and password is not working
找到详细讨论。