Watir-page-objects

提供:Dev Guides
移動先:案内検索

Watir-ページオブジェクト

Watirのページオブジェクトは、クラスの形式でコードを再利用するのに役立ちます。 ページオブジェクト機能を使用すると、コードを複製することなくアプリを自動化でき、コードを管理しやすくすることもできます。

テスト時には、テストするページごとにページオブジェクトを作成できます。 次に、ページオブジェクトを使用してメソッドとプロパティにアクセスします。

ページオブジェクトを使用する背後にある理由-

  • 変更の変更時にページに変更が加えられた場合、コードを書き直す必要はありません。
  • コードの冗長性を回避するため。

Watirでページオブジェクトを使用するには、RSpecを使用します。 RSpecに慣れていない場合のために、link:/rspec/index [RSpec]で利用できる完全なチュートリアルを以下に示します。

私たちがテストを実行しようとしているページはここに与えられています-

テキストボックス

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>

   <body>
      <script type = "text/javascript">
         function wsentered() {
            console.log("inside wsentered");
            var firstname = document.getElementById("firstname");

            if (firstname.value != "") {
               document.getElementById("displayfirstname").innerHTML =
                  "The name entered is : " + firstname.value;

               document.getElementById("displayfirstname").style.display = "";
            }
         }
      </script>

      <div id = "divfirstname">
         Enter First Name :
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()"/>
      </div>
      <br/>
      <br/>
      <div style = "display:none;" id = "displayfirstname"></div>
   </body>
</html>

出力

テキストボックスでの作業出力の実行

以下に示すように、上記のページのページオブジェクトを作成します-

pageobjecttest.rb

class InitializeBrowser
   def initialize(browser)
      @browser = browser
   end
end

class TestPage lt; InitializeBrowser
   def textbox
      @textbox = TestTextbox.new(@browser)
   end
   def close
      @browser.screenshot.save 'usingpageobject.png'
      @browser.close
   end
end # TestPage

class TestTextbox < InitializeBrowser
   URL = "http://localhost/uitesting/textboxl"

   def open
      @browser.goto URL
      self
   end
   def enterdata_as(name)
      name_field.set name
      name_field.fire_event('onchange')
   end

private
   def name_field
      @browser.text_field(:id > "firstname")
   end
end # TestTextbox

定義された3つのクラスがあります-InitializeBrowser、TestPageおよびTestTextbox-

  • InitializeBrowser -これは開かれたブラウザを初期化し、ブラウザオブジェクトをTestPageおよびTestTextboxクラスと共有します。
  • TestPage -このクラスにはTestTextboxへのオブジェクト参照があり、スクリーンショットをキャプチャしてブラウザを閉じるメソッドが含まれています。
  • TestTextbox -このクラスには、ページのURLを開き、テキストフィールドへの参照を与え、データを設定し、onchangeイベントを発生させるメソッドがあります。

上記のコードを実行すると、次のように出力を確認できます-

ID要素の使用