Watir-locating-web-elements

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

Watir-Web要素の特定

テスト用のWatirでは、要素を見つける必要があります。要素のID、クラス、またはテキストを使用して、さまざまな方法で要素を見つけることができます。

この章では、要素を見つけるさまざまな方法を示すいくつかの例を見ていきます。

要素のIDを使用する

テストページ

<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>

require 'watir'
b = Watir::Browser.new :chrome
b.goto('http://localhost/uitesting/textboxl')
t = b.text_field(id: 'firstname')//using the id of the textbox to locate the textbox
t.exists?
t.set 'Riya Kapoor'
b.screenshot.save 'textboxbefore.png'
t.value
t.fire_event('onchange')
b.screenshot.save 'textboxafter.png'

この例では、textbox要素のidを使用して、それを見つけて値を設定しています。

t = b.text_field(id: 'firstname')

出力

IDを使用

ID要素の使用

あなたがdiv、スパンまたは他のhtmlタグを見つける必要がある場合は、次のようにidを使用して同じことを行うことができます

div

browser.div(id: "divid")
browser.div(id:/divid/)

スパン用

browser.span(id: "spanid")
browser.span(id:/spanid/)

要素のNAMEを使用する

テストページ

<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>

require 'watir'
b = Watir::Browser.new :chrome
b.goto('http://localhost/uitesting/textboxl')
t = b.text_field(name: 'firstname')//name is used to locate the textbox element
t.exists?
t.set 'Riya Kapoor'
b.screenshot.save 'textboxbefore.png'
t.value
t.fire_event('onchange')
b.screenshot.save 'textboxafter.png'

出力

IDを使用

ID要素の使用

タグ名を使用する

以下に示すように、htmlタグを直接使用して、必要なhtml要素を見つけることができます。

div

browser.div(id: "divid")
browser.div(id:/divid/)

スパン用

browser.span(id: "spanid")
browser.span(id:/spanid/)

pタグの場合

browser.p(id: "ptag")
browser.p(id:/ptag/)

ボタン用

browser.button(id: "btnid")
browser.button(id:/btnid/)

クラス名を使用する

クラス名を使用して要素を見つけることができます。 以下に示すように行うことができます-

div

browser.div(class: "divclassname")
browser.div(class:/divclassname/)

スパン用

browser.span(class: "spanclassname”)
browser.span(class:/spanclassname/)

pタグの場合

browser.p(class: "pclassname")
browser.p(class:/pclassname/)

ボタン用

browser.button(class: "btnclassname")
browser.button(class:/btnclassname/)

テキストボックス用

browser.text_field(class: 'txtclassname')
browser.text_field(class:/txtclassname/)

以下に示すように、複数のクラスを渡すこともできます-

div

browser.div(class: ["class1", "class2"])

テキストを使用する

これは、テキスト付きの要素を使用して要素を見つけるもう1つの方法です。 たとえば-

browser.button(text: "button text")
browser.button(text:/button text/)

ラベルを使用する

以下に示すように、要素のラベルを使用してそれを見つけることができます-

browser.text_field(label: "text here"))
browser.text_field(label:/text here/))

データ属性の使用

htmlタグにデータ属性がある場合、以下に示すようにそれを使用して要素を見つけることができます-

たとえば、次のようにタグを見つけることができます-

<div data-type = "test1"></div>

次のようにdivを見つけることができます-

browser.div(data-type: 'test1'))
browser.div(data-type:/test1/))

カスタム属性を使用する

以下に示すように、カスタム属性を使用して要素を見つけることもできます-

html要素の例

<div itemprop = ”content”>
   ….
</div>

次のようにdivを見つけることができます-

browser.div(itemprop: ‘content'))
browser.div(itemprop:/content/))

可視属性を使用する

可視属性を使用する要素は、以下に示すように配置することができます-

browser.div(visible: true)
browser.div(visible: false)