我正在尝试使用PhantomJS 1.9.1在selenium webdriver(2.25)的ruby(1.8.7)脚本中配置代理。
我在Firefox上看到了一些例子,我用这个浏览器成功地完成了它。我用了这段代码:
profile = Selenium::WebDriver::Firefox::Profile.new
profile.proxy = Selenium::WebDriver::Proxy.new :ssl => 'chronos.landebitel.local:3128'
$browser = Watir::Browser.new :firefox, :profile => profile
但我找不到任何phantomjs的例子。我搜索并尝试了很多解决方案,但都没有。
有人可以举个例子来帮助我吗?
答案 0 :(得分:6)
尝试:
Watir::Browser.new( :phantomjs,
args: '--proxy=localhost:8181'
)
答案 1 :(得分:6)
除了将代理传递给phantomjs之外,如果代理需要身份验证,您还可以传递用户名和密码。只需将所需选项作为字符串数组传递。
值得注意的是phantomjs以这种方式支持代理身份验证而且chromedriver没有(截至2013年7月);它要求您将身份验证输入到交互式UI中。
switches = ['--proxy=69.106.88.7:60199', '--proxy-auth=username:password123']
browser = Watir::Browser.new :phantomjs, :args => switches
答案 2 :(得分:1)
如果您看到此警告WARN Selenium [DEPRECATION] :args is deprecated. Pass switches using driver_opts
,您仍然使用旧版本。新版本中不推荐使用args: proxy_arguments
。
这就是你需要的
Watir::Browser.new :phantomjs, driver_opts: { args: proxy_arguments }
答案 3 :(得分:0)
感谢您的回答。我刚刚从假期回来,我的问题现在已经解决了。
我使用以下选项启动PhantomJS:
phantomjs --webdriver=777 --proxy=serveur_proxy:8080 --proxy-auth=user:password --proxy-type=http
在我的终端和这一行:
$browser = Watir::Browser.new(:remote, :url => "http://localhost:777")
在我的脚本中,它的工作
答案 4 :(得分:0)
经过多年的搜索(真的)
args = ['--ssl-protocol=tlsv1', "--proxy=ip:port", '--proxy-auth=username:password']
capabilities = Selenium::WebDriver::Remote::Capabilities.phantomjs("phantomjs.page.settings.userAgent" => "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36")
driver = Selenium::WebDriver.for :phantomjs, :desired_capabilities => capabilities, :args => args
@browser = ::Watir::Browser.new driver