2013-06-27 108 views
3

我試圖在selenium webdriver(2.25)的紅寶石(1.8.7)腳本中使用PhantomJS 1.9.1配置代理。在硒webdriver中使用phantomjs的代理

我看到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的例子。我搜索並嘗試了很多解決方案,但都沒有成功。

有人可以給我一個例子來幫助我嗎?

Sorrry英文錯誤。

回答

6

嘗試:

Watir::Browser.new(:phantomjs, 
    args: '--proxy=localhost:8181' 
) 
+0

似乎爲我工作的唯一解決方案,謝謝。 – sidney

+0

使用driver_opts的新版本更新phantomjs替換參數 – ThienSuBS

6

除了代理傳遞給phantomjs你也可以通過用戶名和密碼。如果代理需要身份驗證。只需將所需選項作爲字符串數組傳遞即可。

這樣值得注意的是phantomjs支持代理認證,並且chromedriver沒有(反正到2013年7月);它要求您在交互式用戶界面中輸入身份驗證。

switches = ['--proxy=69.106.88.7:60199', '--proxy-auth=username:password123'] 
browser = Watir::Browser.new :phantomjs, :args => switches 
+0

將參數替換爲driver_opts – ThienSuBS

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") 
在我的腳本

,它的工作

+0

--webdriver指定要偵聽的端口。如果端口號不足1024,則需要升級權限才能啓動phantomjs。所以我推薦一個高於1024的端口號。 –

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 
1

如果你看到這個警告WARN Selenium [DEPRECATION] :args is deprecated. Pass switches using driver_opts,你仍然在舊版本。新版本中已棄用args: proxy_arguments

這就是你需要

Watir::Browser.new :phantomjs, driver_opts: { args: proxy_arguments }