C# Selenium 3.8.0 wait.until调用引发异常

C# Selenium 3.8.0 wait.until调用引发异常,c#,selenium,selenium-webdriver,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("partia

早上好, 我有一段简单的代码:

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。

自动化过程时,通过
自动化脚本跳过
Windows Basic身份验证将不是一个好的做法

在调用时在代码中:

driver.Navigate().GoToUrl("https://www.mysecretwesite.com/");
到达
时,Web驱动程序正在查找
部分链接文本(“部分链接文本”)
当您试图通过
Windows基本身份验证手动填写凭据时,在
HTML DOM中。因此,如果没有
“部分链接文本”
,您将看到异常

然而,您看到的异常的英文版本会让我们对如何处理它有更多的了解

根据最佳实践,我们应尝试通过
WebDriver
处理
Windows基本身份验证,如下所示:

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

您可以找到有关
Windows Basic Authentication
和的详细讨论。

英语中的异常是什么?它没有任何文本,异常消息是空白的。非常感谢您的回复,非常有效。我不知道它是如何与前一个版本一起工作的,而不是与最新的版本,我认为方法应该是相同的。我希望你不介意我把这个打开一点,我希望你能进一步帮助我。。。问题在于,如果您已使用其他浏览器/工作站登录,系统会要求您注销并再次登录。在这种情况下,等待呼叫应该。。。等等,但它没有。因此,前一种行为再次成为首选。说得不好,我不明白为什么更新到3.8.1等待不起作用。@AndreaFilippig如果您的应用程序不支持
单点登录
,那么您已经使用另一个浏览器/工作站登录的会话将被要求注销,而
Selenium
对此没有控制权。AFAIK,
Selenium v3.8.1
比早期版本更稳定。