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

  • 2017年4月24日
  • by 
【初心者向け】Seleniumをまわしてみよう⑤

こんにちは。M.Sです。
今回の第5回目は、なんとこの「初心者向けSelenium講座」の最終回です。
<bitWave関連記事『【初心者向け】Seleniumをまわしてみよう①』>
<bitWave関連記事『【初心者向け】Seleniumをまわしてみよう②』>
<bitWave関連記事『【初心者向け】Seleniumをまわしてみよう③』>
<bitWave関連記事『【初心者向け】Seleniumをまわしてみよう④』>

最終回ではメンテナンスしやすいSeleniumのコーディング方法についてご紹介します。

Seleniumの弱点

第2回目の記事でもご紹介したとおり、Seleniumの弱点はズバリ “Webサイトのデザイン変更等で要素が取得できなくなる場合があること” です。
「なんでページ変更するの!!」と内心では思ってしまうこともありますが、とはいえSeleniumありきでページ変更・修正をしているわけではないというのもまた事実。

ここは慌てず、そして他人を責めず。
Webサイトの更新を想定し、プログラムの修正が少なくて済むようなコーディングを行っていくことで、被害を最小限に食い止めることが重要になっています。

ではソースを見てみましょう。

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

何度も使う要素などはあらかじめ定義する

第3回目の記事では、トップページのデザインが変更されたことで、[お問い合わせ] ボタンをクリックするプログラムで要素を取得できなくなり、Seleniumがエラー終了してしまいました。

上記のプログラムでは、[お問い合わせ] ボタンをクリックする動作は1度しかないため、したがって1カ所だけで修正をしてしまえばOKです。
当然ながら、このクリックする動作が2回ある場合は、プログラムの修正箇所は2カ所になってしまいます。つまり、プログラムの修正箇所は[お問い合わせ] をクリックする動作と同じ数だけ修正が必要になってしまうんですね。
同じアクションなのに面倒くさい……、ということで修正を1カ所で済ませるため、下記のように定義してみましょう。

そして、[お問い合わせ] をクリックするプログラムを下記のようにします。

このようにしておくことで、知らぬ間にWebサイトのデザイン変更され、かつ、[お問い合わせ] をクリックするプログラムが複数箇所あったとしても、下記のプログラムのxpathを変更するだけで、複数箇所の修正が完了したことになるんです!

お問い合せフォームの入力項目に「name値」が変更された場合のことも想定し、あらかじめ「name値」に対しても定義してみましょう。
先ほど同様、1つの「name値」に何度もアクションを実施するプログラムがあったとしても、プログラムの修正箇所はわずか1カ所で完了!
知らぬ間に「name値」が改修されていたとしても、これなら改修作業も最低限のもので済みます!!

項目名「お名前」に入力するプログラムは下記のように変更します。

アクセスするURLも定義します。

アクセスするプログラムは下記のように変更します。

今回の第5回目はテスト対象ページの可変に備え、メンテナンスしやすいコーディング方法をご紹介しました。
内容はスクリーンショットも関数に変更。そして、要素を定義したのでプログラム自体をすっきりさせることができました。

冒頭でもお伝えしたとおり、今回で「初心者向けSelenium講座」は終わりになります。

今後はよりページの可変に強く、どんなテストをしているのか他の人がみても分かりやすいSeleniumを目指し、さらに勉強を続けていきたいと思います!

コメント