【初心者向け】Seleniumをまわしてみよう②

  • 2017年3月16日
  • by 
【初心者向け】Seleniumをまわしてみよう②

こんにちは。M.Sです。

初心者向けSelenium講座の第2回目です。

<bitWave関連記事『【初心者向け】Seleniumをまわしてみよう①』>

今回は対象の要素の取得、取得した要素をクリックする方法をご紹介します。

アクセスしたWebページでアクションをおこしてみよう

さっそくですが、下記の動作をSeleniumで作成してみましょう。

<テスト3>

①Chrome起動
②ショーケース・ティービーのトップページを開く
③グローバルメニュー内の [お問い合わせ] をクリックする
④ブラウザを閉じる

①、②、④のやり方は第1回講座でご紹介したものとまったく同じ内容です。

<bitWave関連記事『【初心者向け】Seleniumをまわしてみよう①』>

今回は新たに追加された「③グローバルメニュー内の [お問い合わせ] をクリックする」を重点的にご紹介します。

<ソース(※macを使用しています)>

クリックを実行させるために、まずは対象のHTMLの要素(=Element)を取得する必要があります。

対象の要素を取得するには「findElement」を使うことになります。

「By~」の部分はロケーターと言い、HTMLの要素を特定するための方法を意味します。ロケーターにはいくつか種類があるため、要素の種類や属性の有無に応じて最適なロケーターを選択することになります。

DOM構造が変更されても、プログラムの修正がなるべく発生しないロケーターを選択することがポイントですね。

ちなみにロケーターは全部で8種類あります。

By.id      id属性の値による指定
By.name  name属性の値による指定
By.tagName  HTMLタグ名による指定
By.className クラス名による指定
By.linkText a要素のテキストによる指定
By.partialLinkText a要素のテキストの部分一致による指定
By.cssSelector CSSセレクタ記法を使った指定
By.xpath xpath記法を使った指定

今回実行させたい「③グローバルメニュー内の [お問い合わせ] をクリックする」

では、「XPath」で要素を取得しています。

「XPath」の場合、特定のテキストに対して部分一致する要素をピンポイントで抽出させることもできますし、特殊な条件で位置の特定が可能であるため、何かと勝手がいいのが特徴です。

なお、Chromeブラウザで「XPath」を取得する場合、開発者ツールの取得したい要素の上で

右クリック → Copy → Copy Xpathをクリック →
といった感じでEclipseに貼り付けてください。

ちなみに「XPath」は、DOM構造が変更になったときに影響を受け、要素が取得できなくなりやすいという特徴もあります。

DOM構造が変更されやすいHTMLの場合は、素直にidで指定した方が無難だったりもします。当然ながら、idが振られていることが大前提とはなりますが。

作成したプログラムを実行してみよう

それではEclipseの「実行」ボタンを押して、実際にSeleniumをまわしてみましょう。

正しければ以下のように実行されます。

①Chrome起動
 ↓
②ショーケース・ティービーのページを開く
 ↓
③グローバルメニューの [お問い合わせ] をクリックし、お問い合わせページに遷移する
 ↓
④ブラウザを閉じる

今回もうまくできましたか?

次回は遷移したフォームの入力項目に入力する方法と待機処理についてご紹介いたします。

コメント