为什么不使用https:// username:password@example.com?

时间:2013-09-17 15:18:52

标签: java firefox selenium

我有一个网站,我正在尝试登录。这是一个有弹出窗口的网站,当你点击它时就会询问你的用户名/密码。

问题在于,https://username:password@my.site.example/不起作用,弹出窗口仍然会保留。

代码暂停在driver.get()上(除非我手动输入弹出窗口中的用户名/密码),所以我无法使用像机器人这样的东西(我不喜欢它)

无论如何,上述网址无法解决的原因是什么,以及适用的解决方案是什么?

(我正在使用FirefoxDriver)

2 个答案:

答案 0 :(得分:0)

它有时不会那样工作。如果你不是那么具体,你可以使用Java AWT机器人来做它。你可以使用driver.switchtoAlert()切换到弹出窗口并输入用户名。其余部分由Robot处理。

请参阅here以获取示例。如果您在切换到窗口时遇到问题,则只能使用用户名和密码条目。由于Chrome的更新版本,弹出框不再是窗口它以不同的方式出现。但这个想法有所作为。

这通常是一个艰难的情况,并且超出了硒的范围来处理这个问题,除了转向机器人之外别无他法。事实证明它是片状的。

如果您对Java AWT不满意并且效果不佳,您可以试用第三方库,例如AutoIT,虽然我不知道使用该框架实现的具体细节,我听说它比机器人更稳定。

编辑:我发布的代码似乎仅适用于Internet Explorer(IEDriverServer),不适用于Firefox或Chrome。我们必须将AutoIT用于其他浏览器。

答案 1 :(得分:0)

您可以将browsermob proxy与远程网络驱动程序结合使用。