第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が必要やわな。
(要素がどこにあるかということの指定)


Default Locators

次の中から位置の指定はできるで、状況に応じて選ぶんとええよ。


documentから始まるDOM。
//から始まるXPath
identifierを使うヤツ。

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

XMLドキュメントで、
XPathは位置を指定するのに使えるわけや。


XPathの指定は、//から始めるで。
だから、xpath= は必要ないんや。

Locating Hyperlinks by Link Text

ハイパーリンクでも指定できるで、
link=
で指定してやるんや。

Locating by DOM

Document Object Model
DOMやがな。

documentから始まるで。
だから
dom=
は絶対必要というわけではないんやな。

Locating by CSS

CSSでも指定できるで、
css=
で、指定したってな。


Matching Text Patterns

パターンちゅーのも、Seleniumコマンドでは、
よく使われるんやな。


たとえば、
verifyTextPresent, verifyTitle, verifyAlert, assertConfirmation, verifyText, verifyPrompt
とかやな。よーさんあるやろ。


linkで位置指定するやつは、パターン使えるんやで。

Globbing Patterns

グログやね。
DOSとかUnix, Linuxコマンドラインで使われているやつやね。


* と [ ] のみがサポートされてるんやわ。


glob:
って書く事で、グログ使いますって、
Seleniumに教えたってな。


Regular Expression Patterns

正規表現やがな。
グロブは * と [ ] だけのサポートやったけど、
正規表現は結構、いろんな記号使えるで。


regexp:
正規表現やでってSeleniumに教えたってな。

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コマンドなんてのもある。