我正在为某些Web应用程序创建并运行自动化测试脚本。在我的一个场景中,我必须使用代理。顺便说一句,我正在使用机器人框架加上selenium来测试我的测试脚本。所以我做了什么,我创建了一个单独的浏览器配置文件,selenium运行。问题是我无法使用机器人框架和selenium与凭据弹出窗口(询问我的用户名和密码)进行交互。有没有办法可以配置代理用户名和密码以包含在浏览器配置文件中?或者有机器框架和selenium可以与身份验证窗口进行交互吗?有没有解决或最终解决此问题的解决方法的任何建议?
谢谢!
答案 0 :(得分: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 |
答案 1 :(得分:1)
我无法使用我的代理,因此我设置了一个squid代理,它使用凭据连接到父代,并提供本地免费代理。 对我来说,这是最简单的设置/解决方案。
答案 2 :(得分:0)
虽然回答较晚,但我认为这会增加以前答案的价值。 还有一种更简单,最快捷的方式,如果有帮助那么好!
如果您从cmd运行selenium服务器,那么</ p>
现在运行应用程序,它可能会再次询问用户名和密码,但不要担心 - 只需填写用户名和密码或单击取消(如果站点在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”);
我只是有一种直觉,它就像魅力一样: - )
希望这种最快捷的方式为某人节省时间和精力!
答案 3 :(得分:0)
可以通过下一种方式处理授权弹出窗口:
http://user:password@securedsite.com (如果您的网站是:http://securedsite.com)