在selenium webdriver中使用带有phantomjs的代理

时间:2013-06-27 16:54:01

标签: ruby selenium proxy phantomjs

我正在尝试使用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的例子。我搜索并尝试了很多解决方案,但都没有。

有人可以举个例子来帮助我吗?

5 个答案:

答案 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