第119回 “Selenese” Selenium Commandsを読んでみた
“Selenese” Selenium Commandsを読んでみました。
自分用にまとめてみます。
(勘違い、読み違い等ありましたら教えていただけるとうれしいです。 英語的にわからないところが2割ほどありました.....)
読んだのはココ
Selenium - Web Browser Automation
コマンドに関しての詳しい説明が書かれています。
ページの要素を検証する
UIの要素を検証するのが、
Webページのテストの自動化では、
まあ、もっともよくあることですわな。
そこで、
テスト方法の違いを理解しておくのは大事ですわ
ということですねん。
つぎの3つの方法があげられまっせ(まあ例としてやけど)
1. ある要素がページのどこかにあるかどうか?
2. 特定のテキストがページのどこかにあるかどうか?
3. 特定のテキストがページの特定の位置にあるかどうか?
Assertion or Verification?
assert にすんのんか verify にすんのか、
どっちにすんのんかは大事やで。
テストに失敗したら、
すぐ問題箇所を直したいときとかあるやろ?
そういうときは、中断するassertやで。
一方やな、
テストに失敗する箇所を全部先に洗い出したいときも
ありますわな。
assertは、中断しますけど、
verifyはしませんわ。
これ重要でっせ。
いっちゃんええーのは、
テストを論理的にグループにするこっちゃ
と書かれている(利点がわからなかった....)。
verifyTextPresent
verifyTextPresentコマンドは、
特定のテキストが、ページのどっかにあるかどうかverifyできるで。
これは、1つのパラメータを取るんや、例えばやな
verifyTextPresent | ほげ |
これは、テキストがあるかどうか知りたいときに使うんやで、
特定の箇所に欲しいときには使ったらアカンで。
verifyElementPresent
これは、テキストちゃうで、
HTML tagをチェックするためのコマンドやで。
verifyText
テキストとUI要素両方をテストしたいときに使うんやで。
(特定のテキストが特定の位置にあるかのテスト)
verifyTextは、位置を指定してやらなアカン。
XPathとDOMが選べるわ。
Locating Elements
多くのSeleniumのコマンドは、targetが必要やわな。
(要素がどこにあるかということの指定)
Locating by Identifier
identifierを使うヤツは、
HTMLの属性のidとかnameを使うやつなんや。
identifier=
でこれは、identifierを使って、位置指定してんねやで
ってSeleniumに教えたってや。
でも、identifier使うヤツ、デフォルトやから、
実は、付けんでもよかったりするんやけどね。
Locating by Id
identifier使うヤツは、nameとかも見てくれるけど、
idだけ見たいときは、
id=
で、Seleniumに位置を指定したってや(たぶん)。
Locating by Name
同様にして、nameで教えたいときは、
name=
でやがな。
XPathとかDOMとちごうて、
これの方が柔軟やで。
ページの構造とか決まってへんときあるやろ、
そういうとき、idとかnameで指定できたら
便利やがな。
Locating Hyperlinks by Link Text
ハイパーリンクでも指定できるで、
link=
で指定してやるんや。
Matching Text Patterns
パターンちゅーのも、Seleniumコマンドでは、
よく使われるんやな。
たとえば、
verifyTextPresent, verifyTitle, verifyAlert, assertConfirmation, verifyText, verifyPrompt
とかやな。よーさんあるやろ。
linkで位置指定するやつは、パターン使えるんやで。
Exact Patterns
これは、特別な記号はつかわへんねや。
(完全一致に使うと思われる)
The AndWait Commands
普通のコマンドとこのAndWaitコマンドの違いわやな、
普通のコマンドはできるだけ早く次のコマンド実行しようとするけど、
AndWaitは待つんやがな。ページ読まれんのを待っとくなましってなもんや。
Sequence of Evaluation and Flow Control
if文みたいになものは、Selenese自体にはサポートされてませんのや。
しかし、けっこう必要やんね、if文系のやつってもんわ。
次の3つのオプションがあるんやで。
1. Selenium-RC
2. storeEvalコマンドをつかったJavaScript snippet
3. 51 Elliot: Selenium IDE Flow Control - Goto and While Loopsで紹介されてるものをインストール
Store Commands and Selenium Variables
The plain storeコマンドが一番ベーシックなstoreコマンドやね。
2つのパラーメータ取るわ。
使うときは、${ } で囲うというわけわけ。
JavaScript and Selenese Parameters
JavaScriptもパラメータに成り得たりする。
javascript{ } で囲うとよい。
echo - The Selenese Print Command
ただ単に、printするだけのechoコマンドなんてのもある。