1

我有一个网站,我正在尝试登录。它是在您点击它时弹出询问您的用户名/密码的网站之一。

问题是doinghttps://username:password@my.site.example/不起作用,弹出窗口仍然存在。

代码暂停driver.get()(除非我在弹出窗口中手动输入用户名/密码),所以我无法使用机器人之类的东西(无论如何我都不喜欢)

无论如何,上述 URL 不起作用的可能原因是什么,适用的修复方法是什么?

(我正在使用 FirefoxDriver)

4

2 回答 2

0

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

这里的例子。如果你在切换到窗口时遇到问题,你可以只使用用户名和密码输入。在 chrome 的更新版本中,弹出框不再是一个窗口,而是以不同的方式出现方式。但这个想法有点奏效。

这通常是一个艰难的情况,超出了 selenium 的范围来处理这个问题,我们除了求助于 Robot 之外别无他法,结果证明它很不稳定。

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

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

于 2013-09-17T15:56:51.280 回答
0

您可以将browsermob 代理与远程 Web 驱动程序一起使用。

于 2013-09-18T16:13:51.223 回答