トップページ > Selenium API(逆引き) > 【Ruby】wait/until/title

【Ruby】wait/until/title・・・ページタイトルを取得するまで待機する

「wait/until/title」を実行することでページタイトルを取得するまで待機することが出来ます。

下記サンプルではまず初めに、「Wait」コンストラクタの引数に(※1)オプション(ここでは:timeout)と待ち時間(秒数)を指定して、インスタンスを作成しています。

次に作成されたインスタンスに対して「until」メソッドを実行しています。「until」メソッドは、引数に指定された条件が真になるまで待機するメソッドです。下記サンプルではdriver.titleの形でページタイトルを取得し、期待するページタイトルであるかどうか確認しています。つまり総合すると指定したページタイトルを取得するまで待つということになります。もし「wait」コンストラクタで指定した待ち時間を越えても、期待値の状態にならない場合はerrorが発生します。

(※1)オプションは「:timeout」、「:interval」、「:message」、「:ignore」の4種類あります。「:interval」はポーリング間隔で、値には秒数を指定します。「:message」はタイムアウトが発生した場合に出力するException mesageを指定します。「:ignore」はポーリングしているときにどのExceptionを無視するか指定します。また、複数のオプションを利用する場合は以下のようにカンマで区切ります。
Wait.new(:timeout => 3, :message => "Test Failed")

説明

◆メソッド
  ・Wait.new(:timeout => xxx)    :Waitコンストラクタにオプションと秒数を指定
  ・wait.until {true}             :中括弧内の条件が「真」になるまで待機する
  ・driver.title                      :タイトルを取得する
◆使用形態
  ・wait.until {driver.title == string}
◆備考
  ・タイトルの判定は大文字と小文字を区別する
◆関連項目
  ・
  ・

サンプル

require 'selenium-webdriver'

# Firefoxを起動
driver = Selenium::WebDriver.for(:firefox)
#指定したURLに遷移する
driver.get('https://www.google.co.jp')
#指定したdriverに対して最大で10秒間待つように設定する
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
#表示確認したいタイトルを指定する
pageTitle = 'Google'
#指定したタイトルが表示されるまで待機(最大待機時間までに)
wait.until {driver.title == pageTitle}

実行結果

titleContains2
 ※GoogleおよびGoogleロゴはGoogle Inc.の登録商標であり、同社の許可を得て使用しています。

動画デモ

※字幕をONにすると解説のテロップが表示されます※

カテゴリー

Selenium導入

APIリファレンス

その他

ページ上部へ戻る
トップページ > Selenium API(逆引き) > 【Ruby】wait/until/title
Copyright © 2016- Seleniumクイックリファレンス All Rights Reserved