watir-webdriver&代理凭证

时间:2012-02-24 09:51:17

标签: ruby proxy watir

我正在尝试在公司环境中使用watir-webdriver / ruby​​,但是遇到了输入代理凭据以访问被测系统的问题。

我已经阅读了其他论坛的各种片段,包括Alister Scott关于设置代理的一些有用提示,并将它们保存到配置文件中。然而,这仍然没有让我超越实际需要输入代理凭证。

我能想到的两个方法包括

选项1:以与代理本身相同的方式保存凭据。 E.g。

profile = Selenium::WebDriver::Firefox::Profile.new
profile.proxy = Selenium::WebDriver::Proxy.new :http => 'myproxy.com:8080', :ssl =>     'myproxy.com:8080'
# COMMAND FOR PROXY CREDENTIALS?
b = Watir::Browser.new :firefox, :profile => profile

选项2:使用我的默认配置文件,该配置文件已保存代理凭据但仍需要一些webdriver代码才能单击“确定”按钮(可能还需要更多“我理解风险”对话框等)

b = Watir::Browser.new :firefox, :profile => 'default'

我不允许作为新手发布图片,但对话文字说

代理[BLAH]正在请求用户名和密码。该网站说[BLAH]   用户名:   密码:   [确定] [取消]

欢迎任何建议。

UPDATE 我设法让某些工作,这是使用默认配置文件并调整名为'signon.autologin.proxy'的firefox设置 - 将此设置为true(在浏览器中点击about:config,过滤'prox',它应该出现在底部)

仍然会更喜欢基于watir-webdriver的解决方案; - )

1 个答案:

答案 0 :(得分:1)

如果您需要一个特定的代理服务器用于被测系统而另一个用于一般用途,我建议您考虑使用PAC文件。 Link to Automatically Configuring Browsers for Proxy

示例脚本:

function FindProxyForURL(url, host)
{
if (shExpMatch(url, "http://principia.mo.techpaths.com*")) {
return "DIRECT";
}
if (isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0"))
return "PROXY 192.168.1.1:8080";
else
return "DIRECT";
}

希望有所帮助。