Firefox身份验证警报弹出窗口

时间:2018-12-14 14:26:05

标签: c# selenium firefox

我正在尝试访问一个网页,在该网页上会弹出一个输入用户名和密码的窗口。 使用下面的代码,我设法输入值的值,但是问题是,当我第一次输入用户名然后输入TAB时,TAB实际上将替换用户名,然后跳转到密码字段。但是,密码也会写在“用户字段”中。焦点跳回到用户名。

var alert = driver.SwitchTo().Alert();
            alert.SendKeys(_credentials.UserName);
            System.Threading.Thread.Sleep(1000);
            alert.SendKeys(Keys.Tab);
            System.Threading.Thread.Sleep(1000);
            alert.SendKeys(_credentials.Password);
            System.Threading.Thread.Sleep(1000);
            alert.Accept();

我也尝试过使用以下代码,但仅适用于IE,不适用于Firefox。

var alert = driver.SwitchTo().Alert();
            alert.SetAuthenticationCredentials(_credentials.UserName, _credentials.Password);
            System.Threading.Thread.Sleep(1000);
            alert.Accept();

您知道如何在Firefox中解决此问题吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试将所有SendKey组合在一起并尝试一下吗?

alert.SendKeys(_credentials.UserName + Keys.TAB + _credentials.Password).Accept();

最终,您也可以尝试通过身份验证来获取网页,例如:

driver.Navigate().GoToUrl('http://<user>:<pass>@<yourpage>')

如果密码包含@字符,则可能需要对网址进行网址编码:)