我正在尝试通过代理实际地路由 watir ——这意味着在脚本中我想在启动浏览器之前动态更改我的代理。
这是我到目前为止所尝试过的(到目前为止失败了): 我正在运行 chrome 和 lucid lynx ubuntu。我选择 TREX 是因为我认为 watir 可能会利用 PROXY 之类的东西。
我将/usr/bin/google-chrome 重写为:
#!/bin/bash
/opt/google/chrome/chrome --proxy-server="$TREX" $@
我将环境变量传递给代理服务器而不是 http_proxy 的原因是因为我永远无法让 http_proxy 按原样工作
然后我做了一个简单的:
require 'rubygems'
require 'watir-webdriver'
ENV['TREX'] = "XX.XX.XX.XX:YY"
browser = Watir::Browser.new(:chrome)
browser.goto("http://mysite.com")
无论如何,这里发生的事情是将我转发到代理的登录页面,而不仅仅是转发请求。
我在这里缺少什么?我觉得我已经很接近了。
最佳答案
这里的问题是您无法使用 chrome --proxy-server=blah:3128 自动向代理服务器进行身份验证
Chrome 启动时始终会提示您在身份验证代理上输入用户名和密码(通过网络驱动程序或手动)
解决此问题的一种复杂方法是安装 apache 的本地实例,并使用鱿鱼作为透明代理来对远程代理服务器进行身份验证。然后你只需启动 chrome,并将代理标志指向本地鱿鱼代理。换句话说,将未经身份验证的代理链接在经过身份验证的代理前面......
我也一直在寻找这个问题的解决方案。我想也许像 webrick 作为代理,或者 corksrew...但还不能得到答案...
关于linux - 如何实用地通过代理路由 watir?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2970777/