0

我正在为某些 Web 应用程序创建和运行自动化测试脚本。在我遇到的一种情况下,我必须使用代理。顺便说一句,我正在为我的测试脚本使用机器人框架和硒。所以我做了什么,我创建了一个单独的浏览器配置文件来运行 selenium。问题是我无法使用机器人框架和 selenium 与凭据弹出窗口(询问我的用户名和密码)进行交互。有没有办法可以配置代理用户名和密码以包含在浏览器配置文件中?或者有没有一种方法可以让机器人框架和 selenium 与身份验证窗口进行交互?任何人在解决或最终解决此问题时有任何建议吗?

谢谢!

4

4 回答 4

1

Robot Framework SeleniumLibrary 在内部使用 Selenium RC。代理认证可以在 Selenium 服务器启动时定义,详见http://seleniumhq.org/docs/05_selenium_rc.html#proxy-configuration

因此,如果您手动启动服务器,只需按照上述说明进行操作即可。如果您使用 Start Selenium Server 关键字,您可以将这些参数作为参数提供:

| Start Selenium Server | -Dhttp.proxyHost=proxy.com | -Dhttp.proxyPort=8080 | -Dhttp.proxyUser=username | -Dhttp.proxyPassword=password |
于 2012-03-08T19:32:27.520 回答
1

我无法使用我的代理进行此操作,因此我设置了一个 squid 代理,它使用凭据连接到父级并提供一个本地免费代理来使用。对我来说,这是最简单的设置/解决方案。

于 2013-12-27T16:54:22.760 回答
0

授权弹出可以通过以下方式处理:

http://user:password@securedsite.com (如果您的网站是:http ://securedsite.com )

于 2014-01-26T13:17:17.900 回答
0

虽然回答迟了,但我认为它会为以前的答案增加价值。还有一种更简单快捷的方法,如果有帮助,那就太好了!

如果您从 cmd 运行 selenium 服务器,那么

  1. 以管理员权限启动 cmd(以管理员身份运行),因此服务器也以管理员权限启动,

  2. 现在运行应用程序,它可能会再次询问用户名和密码,但不要担心 - 只需填写用户名和密码或单击取消(如果站点在 localhost 上运行),它就会像这样工作。(现在它就像将用户名和密码传递给浏览器或应用程序一样工作)

    此外,如果不想每次都手动填写身份验证详细信息,则在您的脚本中包含以下代码:

System.setProperty("http.proxyHost", ");
System.setProperty("http.proxyPort", "proxyPort");
System.setProperty("http.proxyUser", "proxyUser");
System.setProperty("http. proxyPassword", "proxyPassword" );
System.setProperty("http.nonProxyHosts", "proxyExceptions");

我只是有一种直觉,它就像魅力一样工作:-)

希望这种最快的方式可以为某人节省时间和精力!

于 2013-02-28T11:54:20.327 回答