FireWatirでProxy設定
Webのテストやら自動化やらで便利なRubyのライブラリWatir。
最近はFirefoxも使えるようになってさらに便利になったのだが、プロキシの設定を動的に変えたかったのでちょいとハック。
FireWatirをGemで入れて、以下のコードをfirefox.rb内のFireWatir::Firefoxのpublicメソッドに追加すればOK
def set_proxy_host(host) jssh_command = 'var prefsCom = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);' jssh_command << %{prefsCom.setCharPref("network.proxy.http", "#{host}");} js_eval jssh_command end def set_proxy_port(port) jssh_command = 'var prefsCom = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);' jssh_command << %{prefsCom.setIntPref("network.proxy.http_port", #{port.to_s});} js_eval jssh_command end def set_proxy_type(type) jssh_command = 'var prefsCom = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);' jssh_command << %{prefsCom.setIntPref("network.proxy.type", #{type.to_s});} js_eval jssh_command end
利用例は次のとおり
require 'firewatir' ff = FireWatir::Firefox.new ff.set_proxy_host('127.0.0.1') ff.set_proxy_port(8080) ff.set_proxy_type(2) #手動プロキシー設定
network.proxy.ほげほげを変えればいろいろいじれる。ここを見たよ。
setIntPrefをgetIntPrefにすれば値も取れる。
※FireWatirの利用にはFirefoxにJSSHというアドオンが必要。
0 件のコメント:
コメントを投稿