Ruby WebDriverガイド
明示的な待ち時間。
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
wait.until { driver.find_element(:id => "cheese").displayed?}
暗黙の待機。
driver = Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 3 # seconds
内部タイムアウトです。
WebDriver は内部で http プロトコルを使用して、様々なドライバとやり取りを行います。デフォルトでは、Ruby 標準ライブラリの Net::HTTP プロトコルが使用され、デフォルトのタイムアウトは 60 秒です。Driver を呼び出して 60 秒以上かかるページを読み込むと、Net::HTTP からのタイムアウトエラーが表示されます。ブラウザを起動する前に、手動でタイムアウトを設定することができます。
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120 # seconds
driver = Selenium::WebDriver.for(:remote, :http_client => client)
ruby webdriver は firefox ドライバの起動時に firebug 拡張を読み込みます。
公式Wikiにあるように
拡張機能の追加
WebDriverで起動したFirefoxインスタンスでFirebugが利用できると便利なことが多いです。
profile = Selenium::WebDriver::Firefox::Profile.new
profile.add_extension("/path/to/firebug.xpi")
driver = Selenium::WebDriver.for :firefox, :profile => profile
そこで自分でも試してみましたが、毎回firebug.xpiが見つからないとプロンプトが表示されます。
今日、時間があったので、逆算して問題が解決しました
実は、以前は誤解していたのですが、dr =Selenium::WebDriver.for:ff
ff を起動すると、firebug プラグインを持たないシンプルなプロファイルで初期化されます。つまり、もともと firefox に firebug をインストールしていても起動しないので、firebug を使う必要があるときは firebug 拡張を読み込む必要があるのです
profile.add_extension("/path/to/firebug.xpi")
"/path/to/firebug.xpi"はfirebug.xpiへのパスなので、我々はオンラインでfirebug.xpi(対応バージョン、私のFFは14ですが、私はfirebug-1.10.4.xpi、最高の使用(ダウンロードする非Firefoxブラウザを使って、他の場合は直接火狐にインストールするよう促され)することができ、ダウンロードしてください。
スクリプトが格納されているパスに直接 firefox.xpi を格納することができ、相対パスと絶対パスの両方が利用可能です。
Baiduの例を見てみましょう。
require 'selenium-webdriver'
#dr = Selenium::WebDriver.for :ff
profile = Selenium::WebDriver::Firefox::Profile.new
profile.add_extension("path/to/firebug-1.10.4.xpi") <font color="DarkOrchid">#firefox-1.10.4.xpi is stored at the same level as the script path/to below</font>
dr = Selenium::WebDriver.for :firefox, :profile => profile
dr.get "http://www.baidu.com"
こうすることで、dom 構造を見る必要があるときに、新しい firefox を開いて dom 構造を見る代わりに、開いているテスト ページで直接デバッグすることができるようになります。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Rubyの乱数生成方法のまとめ
-
画像フィルターアルゴリズムコードのRuby実装
-
Rubyを使ったラムダ計算の詳しいシミュレーション方法
-
UbuntuでRuby on RailsフレームワークとRubyMine IDEを設定する
-
MongoDBに接続するためのRuby on Railsフレームワークアプリケーション チュートリアル
-
Rubyの文法と言語機能のまとめ
-
Rubyのgemパッケージ管理およびgemソース構築のチュートリアル
-
CentOS7でruby on railsの開発環境を構築する。
-
Rubyバージョン管理ツールRVMのインストールとチュートリアルの使用方法
-
Ruby on RailsでMarkdownを使用する方法