214
238

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Selenium IDE コマンドリファレンス (2019/09版 : Selenium IDE v3.12.0 [全96コマンドを徹底解説])

Posted at

はじめに

10分でわかるブラウザ処理自動化!初心者向けSelenium IDE入門ガイドでSelenium IDEを使い始めるためのガイドを書きました。
そこでは、条件分岐やループ処理など一部のコマンドについての解説を書きました。
本記事では v3.12.0(2019/09時点での最新)のコマンド全部をサンプルコード を書きながら解説しています。
今回作成したサンプルコードはGithubに置いています。
https://github.com/RustyNail/SeleniumIDEDemoSeleniumIDEcommand.sideをインポートすれば実行できます。

Selenium IDEのコマンド一覧

新しいSelenium IDEがでた当初はコマンドが少なくて「今までやっていたことができなくなってる?使えないのでは?」とちょっと不安でしたが、今では随分コマンドが増え充実してきているようです。
公式のドキュメントもありますが、この記事にはサンプル
Selenium IDEのコマンドリストを見るとこれだけあります。(アルファベット順)

 1. add selection
 2. answer on next prompt
 3. assert
 4. assert alert
 5. assert checked
 6. assert confirmation
 7. assert editable
 8. assert element present
 9. assert element not present
10. assert not checked
11. assert not editable
12. assert not selected value
13. assert not text
14. assert prompt
15. assert selected value
16. assert selected label
17. assert text
18. assert title
19. assert value
20. check
21. choose cancel on next confirmation
22. choose cancel on next prompt
23. choose ok on next confirmation
24. click
25. click at
26. close
27. debugger
28. do
29. double click
30. double click at
31. drag and drop to object
32. echo
33. edit content
34. else
35. else if
36. end
37. execute script
38. execute async script
39. for each
40. if
41. mouse down
42. mouse down at
43. mouse move at
44. mouse out
45. mouse over
46. mouse up
47. mouse up at
48. open
49. pause
50. remove selection
51. repeat if
52. run
53. run script
54. select
55. select frame
56. select window
57. send keys
58. set speed
59. set window size
60. store
61. store attribute
62. store json
63. store text
64. store title
65. store value
66. store window handle
67. store xpath count
68. submit
69. times
70. type
71. uncheck
72. verify
73. verify checked
74. verify editable
75. verify element present
76. verify element not present
77. verify not checked
78. verify not editable
79. verify not selected value
80. verify not text
81. verify selected label
82. verify selected value
83. verify text
84. verify title
85. verify value
86. wait for element editable
87. wait for element not editable
88. wait for element not present
89. wait for element not visible
90. wait for element present
91. wait for element visible
92. webdriver answer on visible prompt
93. webdriver choose cancel on visible confirmation
94. webdriver choose cancel on visible prompt
95. webdriver choose ok on visible confirmation
96. while

全部で 96 個 のコマンドがありますが、通常はif..else..endやwhile..endのように複数のコマンドを組み合わせて使います。

いくつかのコマンドを組み合わせた形でサンプルコードを作成して解説していきます。
サンプルを実行する環境として、日本Seleniumユーザーコミュニティのテスト用のサイト( http://example.selenium.jp/reserveApp_Renewal/ )を使用しています。
そのため、Base URLは http://example.selenium.jp を設定しています。

入力操作

type

入力欄に任意のテキストを入力することができます。

【コード】
スクリーンショット 2019-08-22 22.21.31.png
【実行結果】
スクリーンショット 2019-08-22 22.22.45.png

edit content

コンテンツ編集可能な要素に値を入力します。

【コード】
以下の例では、コンテンツが編集可能なサイト https://quilljs.com/ を利用しています。
スクリーンショット 2019-09-05 23.01.03.png

【実行結果】
スクリーンショット 2019-09-05 23.05.01.png

send keys

指定した要素の対して、キー入力操作を行います。
type コマンドとは異なり、既存のコンテンツを書き換えることは出来ません。

【コード】
(Enterキーを押した場合)
スクリーンショット 2019-08-28 23.28.17.png
フォームが送信されます。

(文字列を入力した場合)
スクリーンショット 2019-08-28 23.34.21.png
スクリーンショット 2019-08-28 23.34.09.png
既存のコンテンツ(入力済みの"山田花子")は書き換えないため追記するような形になります。

select

選択肢(select要素)の内、指定したものを選択します。

【コード】
以下の例では、宿泊人数を1人(デフォルト)から2人に変更しています。
スクリーンショット 2019-08-23 16.49.42.png

【実行結果】
実行前:スクリーンショット 2019-08-23 16.54.28.png 実行後:スクリーンショット 2019-08-23 16.54.16.png

add selection

対象とする選択肢を複数選択することができます。
よくあるCtrlキー(OSXの場合はcommandキー)を押しながら選択するアレです。

【コード】
以下の例では、 http://only-testing-blog.blogspot.com/2013/09/testing.html というデモサイトを使用しています。
スクリーンショット 2019-09-01 23.18.20.png

【実行結果】
スクリーンショット 2019-09-01 23.05.37.png

remove selection

対象とする選択肢を複数選択したものを除外することができます。

【コード】
以下の例では、 http://only-testing-blog.blogspot.com/2013/09/testing.html というデモサイトを使用しています。
スクリーンショット 2019-09-01 23.16.31.png

【実行結果】
スクリーンショット 2019-09-01 23.15.04.png

check

チェックボックスにチェックを入れます。

【コード】
以下の例では、「昼からチェックインプラン」にチェックを入れます。
スクリーンショット 2019-08-23 17.00.17.png

スクリーンショット 2019-08-23 17.02.07.png

【実行結果】
 (実行前は「昼からチェックインプラン」にチェックが入っていません)
スクリーンショット 2019-08-23 17.01.22.png

unckeck

チェックボックスにチェックを外します。

【コード】
スクリーンショット 2019-08-23 17.02.14.png

【実行結果】
 (実行前に「昼からチェックインプラン」にチェックを入れています)
スクリーンショット 2019-08-23 17.01.39.png

choose ok on next confirmation / webdriver choose ok on visible confirmation

表示されたダイアログでOKを選択します。
スクリーンショット 2019-09-05 23.31.37.png

ダイアログがまだ表示されていない場合は、 choose ok on next confirmation を使用します。
ダイアログが既に存在する場合は、 webdriver choose ok on visible confirmation を使用します。

【コード】
以下の例では、確認ダイアログが表示されるデモサイト http://only-testing-blog.blogspot.com/2013/09/test.html を使用しています。
スクリーンショット 2019-09-05 22.28.34.png
スクリーンショット 2019-09-05 22.28.42.png
ダイアログ表示からOKを選択するまでのコード:
スクリーンショット 2019-09-05 22.46.11.png

choose cancel on next confirmation / webdriver choose cancel on visible confirmation

表示されたダイアログでキャンセルを選択します。
スクリーンショット 2019-09-05 23.31.37のコピー.png

ダイアログがまだ表示されていない場合は、 choose cancel on next confirmation を使用します。
ダイアログが既に存在する場合は、 webdriver choose cancel on visible confirmation を使用します。

【コード】
以下の例では、確認ダイアログが表示されるデモサイト http://only-testing-blog.blogspot.com/2013/11/new-test.html を使用しています。
スクリーンショット 2019-09-05 22.49.01.png
スクリーンショット 2019-09-05 22.49.07.png

ダイアログ表示からキャンセルを選択するまでのコード:
スクリーンショット 2019-09-05 22.46.45.png

answer on next prompt / webdriver answer on visible prompt

表示されたアラートプロンプトで回答を入力(してOKを選択)します。

スクリーンショット 2019-09-05 23.44.00.png

アラートプロンプトがまだ表示されていない場合は、 answer on next prompt を使用します。
アラートプロンプトが既に存在する場合は、 webdriver answer on visible prompt を使用します。

【コード】
以下の例では、アラートプロンプトが表示されるデモサイト http://only-testing-blog.blogspot.com/2013/11/new-test.html を使用しています。
スクリーンショット 2019-09-05 23.46.20.png
スクリーンショット 2019-09-05 23.46.26.png

アラートプロンプト表示から回答を入力(してOKを選択)するまでのコード:
スクリーンショット 2019-09-05 23.48.53.png

choose cancel on next prompt / webdriver choose cancel on visible prompt

表示されたアラートプロンプトでキャンセルを選択します。

スクリーンショット 2019-09-05 23.23.50.png

アラートプロンプトがまだ表示されていない場合は、 choose cancel on next prompt を使用します。
アラートプロンプトが既に存在する場合は、 webdriver choose cancel on visible prompt を使用します。

【コード】
以下の例では、アラートプロンプトが表示されるデモサイト http://only-testing-blog.blogspot.com/2013/11/new-test.html を使用しています。
スクリーンショット 2019-09-05 23.21.51.png
スクリーンショット 2019-09-05 23.21.58.png

アラートプロンプト表示からキャンセルを選択するまでのコード:
スクリーンショット 2019-09-05 23.31.03.png

マウス操作

click

対象の要素(リンク、ボタン、チェックボックス、ラジオボタンなど)をクリックします。

【コード】
以下の例では、「利用規約に同意して次へ」をクリックしています。
スクリーンショット 2019-08-23 23.20.53.png

スクリーンショット 2019-08-23 23.20.20.png

click at

対象の要素(リンク、ボタン、チェックボックス、ラジオボタンなど)をクリックします。
クリックするポイント(座標)を指定できます。対象要素に対して相対的で、例えば左上隅は 0,0になります。

【コード】
スクリーンショット 2019-09-05 21.51.37.png

double click

対象の要素(リンク、ボタン、チェックボックス、ラジオボタンなど)をダブルクリックします。

【コード】
スクリーンショット 2019-09-08 2.44.49.png

double click at

対象の要素(リンク、ボタン、チェックボックス、ラジオボタンなど)をダブルクリックします。
クリックするポイント(座標)を指定できます。対象要素に対して相対的で、例えば左上隅は 0,0になります。

【コード】
スクリーンショット 2019-09-08 2.44.42.png

mouse down

マウスの左ボタンをクリックした状態にします。(クリックしたまま)

【コード】
以下の例では、 マウスダウン/マウスアップでスライダーを動かせるデモ http://only-testing-blog.blogspot.com/2014/09/selectable.html を使用しています。
スクリーンショット 2019-09-08 2.56.08.png

mouse down at

マウスの左ボタンをクリックした状態にします。(クリックしたまま)
クリックするポイント(座標)を指定できます。対象要素に対して相対的で、例えば左上隅は 0,0になります。

【コード】
以下の例では、 マウスダウン/マウスアップでスライダーを動かせるデモ http://only-testing-blog.blogspot.com/2014/09/selectable.html を使用しています。
スクリーンショット 2019-09-08 2.55.58.png

mouse move at

マウスを左ボタンを押したまま指定の場所まで移動します。

【コード】
以下の例では、 マウスダウン/マウスアップでスライダーを動かせるデモ http://only-testing-blog.blogspot.com/2014/09/selectable.html を使用しています。
スクリーンショット 2019-09-08 3.01.03.png

【実行結果】
mouse down atmouse move atmouse up atを組み合わせると以下のようなスライダーを動かすような操作も可能です。
(実行前)
スクリーンショット 2019-09-08 10.38.50.png

(実行後)
スクリーンショット 2019-09-08 10.37.43.png

mouse up

左マウスを(クリックされた状態から)離します。

【コード】
以下の例では、 マウスダウン/マウスアップでスライダーを動かせるデモ http://only-testing-blog.blogspot.com/2014/09/selectable.html を使用しています。
スクリーンショット 2019-09-08 3.02.49.png

mouse up at

指定した場所で左マウスを(クリックされた状態から)離します。

【コード】
以下の例では、 マウスダウン/マウスアップでスライダーを動かせるデモ http://only-testing-blog.blogspot.com/2014/09/selectable.html を使用しています。
スクリーンショット 2019-09-08 3.02.42.png

mouse out

マウスカーソルを対象の要素から離します。

【コード】
以下の例では、Facebookというリンクにマウスカーソルを当てた状態からカーソルを離します。
これにより、リンクテキストのハイライトがなくなります。

スクリーンショット 2019-09-05 1.14.08.png

【実行結果】
(mouse out前)
スクリーンショット 2019-09-05 1.12.56.png

(mouse out後)
スクリーンショット 2019-09-05 1.12.35.png

mouse over

マウスカーソルを対象の要素に乗せます。

【コード】
以下の例では、Facebookというリンクにマウスカーソルを当てた状態になるため、リンクテキストがハイライトされます。
この後に mouse out すると、元のリンクテキストの色に状態に戻ります。

スクリーンショット 2019-09-05 1.14.01.png

【実行結果】
(mouse over前)
スクリーンショット 2019-09-05 1.12.35.png

(mouse over後)
スクリーンショット 2019-09-05 1.12.56.png

drag and drop to object

ドラッグ&ドロップの操作を行います。

【コード】
以下の例では、 ドラッグ&ドロップができるデモサイト http://only-testing-blog.blogspot.com/2014/09/drag-and-drop.html を使用しています。
スクリーンショット 2019-09-08 1.51.08.png

【実行結果】
(実行前)
スクリーンショット 2019-09-08 2.08.58.png

(実行後)
スクリーンショット 2019-09-08 2.09.10.png

submit

フォームを送信します。

【コード】
以下の例では、宿泊予約システムのデモサイト http://example.selenium.jp/reserveApp_Renewal/ を使用しています。
予約フォームを送信しておりスクリーンショット 2019-08-26 22.37.17.pngをクリックしたのと同じ挙動になります。

スクリーンショット 2019-08-26 22.35.19.png

ループ処理

times...end

ループ処理をします。ループする回数を指定します。

【コード】
以下の例では、5回 echo を実行するループ処理をしています。
スクリーンショット 2019-08-24 13.00.40.png

【実行結果】
ログには以下のように5回 echo の結果が出力されています。
スクリーンショット 2019-08-24 13.00.32.png

while...end

ループ処理をします。ループする条件を指定します。

【コード】
以下の例では、5回 echo を実行するループ処理をしています。
スクリーンショット 2019-08-24 12.43.40.png

【実行結果】
ログには以下のように5回 echo の結果が出力されています。
スクリーンショット 2019-08-24 12.43.59.png

do...repeat if

ループ処理をします。while と同様にループする条件を指定します。

【コード】
以下の例では、5回 echo を実行するループ処理をしています。
スクリーンショット 2019-08-24 13.08.37.png

【実行結果】
ログには以下のように5回 echo の結果が出力されています。
スクリーンショット 2019-08-24 13.08.53.png

for each...end

配列に含まれている要素を順に取り出し、オブジェクトに含まれる要素が無くなるまで繰り返し行います。

【コード】
以下の例では、"red", "yellow", "blue" という文字列を格納した配列colorsに対して、 for each コマンドを使用して順に echo したものです。
スクリーンショット 2019-08-28 8.42.31.png

【実行結果】
ログの出力です。配列に含まれる要素数分ループしていることがわかります。
スクリーンショット 2019-08-28 8.40.24.png

条件分岐

if...else if...else

条件分岐(条件毎の処理)を定義することができます。

【コード】
スクリーンショット 2019-08-30 0.34.47.png

値を(変数に)格納

store

値を変数に格納することができます。

【コード】
以下の例では、 countという変数に5を格納しています。
スクリーンショット 2019-08-30 0.38.23.png

store attribute

指定した要素の属性値を変数に格納します。

【コード】
以下の例では。バナーのhref属性の値を格納しています。
スクリーンショット 2019-08-26 23.06.24.png

【実行結果】
格納した値を echo でログに出力した結果です。
スクリーンショット 2019-08-26 23.09.18.png
スクリーンショット 2019-08-26 23.07.56.png

store json

jsonのデータを変数に格納します。

【コード】
以下の例では、jsonデータを変数に格納して、 echo コマンドでjsonデータ中身の情報を出力しています。

スクリーンショット 2019-09-05 0.02.30.png

【実行結果】
スクリーンショット 2019-09-05 0.05.10.png

store text

指定した要素のテキストを変数に格納します。

【コード】
スクリーンショット 2019-08-26 22.52.49.png

store title

ページタイトルを変数に格納します。ロケータの指定は不要です。

【コード】
スクリーンショット 2019-08-23 8.58.25.png

store value

指定した要素のvalueの値を変数に格納します。 store text と間違えないように注意してください。

【コード】
スクリーンショット 2019-08-23 16.06.22.png

store window handle

現在のウィンドウのハンドルを取得して変数に格納します。

【コード】
スクリーンショット 2019-09-01 23.59.25.png

store xpath count

指定したxpathでマッチする要素数を変数に格納します。

【コード】
以下の例では、HTMLのh3の要素数をh3という変数に格納しています。(この場合、5が格納される)
スクリーンショット 2019-08-23 16.13.16.png
スクリーンショット 2019-08-23 16.19.44.png

スクリーンショット 2019-08-23 16.12.47.png

検証

はじめに、assert系コマンドとverify系コマンドの違いを説明します。
assert系コマンドとverify系コマンドは、どちらも条件の一致を検証するのに役立ちます。
違いは、verifyコマンドを使用していて条件を検証して条件が一致しない場合、ログ領域にエラーメッセージのみを表示しますがテストの実行は継続されます。
一方、assertコマンドを使用していて条件が一致しない場合、失敗した時点でテストが終了して後続のステップがあった場合でもそれ以降は実行されません。

以下、同じ系統のものでverifyとassertコマンドがある場合、【コード】や【実行結果】はverifyXXXのものだけを載せます。

assert / verify

変数が期待値であることを確認します。

【コード】
以下の例では、h3要素の数を取得して、その数が期待値と合っているか検証しています。
スクリーンショット 2019-09-06 0.13.29.png

スクリーンショット 2019-09-06 0.13.47.png

assert alert

アラートに表示されたテキストを検証します。

【コード】
以下の例ではアラートのテキストが「Hi.. This is alert message!」であることを検証しています。
スクリーンショット 2019-09-05 21.50.55.png
スクリーンショット 2019-09-05 21.50.35.png

assert checked / verify checked

指定した要素(チェックボックス)がチェック済であることを検証します。

【コード】
スクリーンショット 2019-08-26 8.36.01.png

assert confirmation

確認ダイアログに表示されたテキストを検証します。

【コード】
以下の例では確認ダイアログのテキストが「Press 'OK' or 'Cancel' button!」であることを検証しています。
スクリーンショット 2019-09-05 22.00.09.png
スクリーンショット 2019-09-05 22.16.46.png

assert editable / verify editable

指定した要素が編集可能か検証します。

【コード】
スクリーンショット 2019-08-23 16.25.23.png

assert element present / verify element present

要素(element)が存在することを検証します。

【コード】
以下の例では、dataPickというidが付いた要素の有無を検証しています。
スクリーンショット 2019-08-23 8.46.44.png
スクリーンショット 2019-08-22 23.02.33.png

assert element not present / verify element not present

要素(element)が存在しないことを検証します。

【コード】
以下の例では、element_not_presentというidが付いた要素の有無を検証しています。
適当に付けた存在しないid(のついた要素)のため、このステップはPASSします。
スクリーンショット 2019-08-28 23.07.22.png

assert not checked / verify not checked

指定した要素(チェックボックス)がチェック済でないことを検証します。

【コード】
スクリーンショット 2019-08-26 8.36.09.png

assert not editable / verify not editable

テキストボックス、リストボックス、ドロップダウンなどの入力フィールドのみで使用できます。
対象の要素が編集できないことを検証します。

【コード】
verify_not_editable.png

assert not selected value / verify not selected value

選択肢(select要素)で選択しているvalue値が期待値でないことを検証します。

【コード】
スクリーンショット 2019-08-28 23.14.45.png

assert not text / verify not text

指定したテキストがないことを検証します。

【コード】
以下の例では、h1要素のテキストが 予約エラー でないことを検証しています。
スクリーンショット 2019-08-26 12.58.38.png

assert prompt

プロンプトが表示されていること表示されているテキストも含めて検証します。

【コード】
以下の例では、プロンプトが表示されるデモサイト http://only-testing-blog.blogspot.com/2013/11/new-test.html を使用しています。
スクリーンショット 2019-09-05 23.54.03.png

スクリーンショット 2019-09-05 23.53.35.png

assert selected label / verify selected label

選択肢(select要素)で選択しているラベルの値を検証します。

【コード】
スクリーンショット 2019-08-23 16.39.12.png

assert selected value / verify selected value

選択肢(select要素)で選択しているvalue値が期待値であることを検証します。

【コード】
デフォルトで1になっているため、2を選択して、
スクリーンショット 2019-08-23 16.43.53.png
その直後で、 verify selected value で2になることを検証しています。
スクリーンショット 2019-08-23 16.42.01.png

assert value / verify value

指定した要素のvalueが一致しているか検証します。
テキストエリアに入力しているため、 verify text と間違えそうになるのでご注意!

【コード】
スクリーンショット 2019-08-23 16.27.14.png

assert text / verify text

指定した要素のテキストが一致しているか検証します。

【コード】
スクリーンショット 2019-08-23 16.32.03.png

assert title / verify title

ページタイトルを検証します。
スクリーンショット 2019-08-22 22.30.29.png

【コード】
スクリーンショット 2019-08-22 22.34.55.png

ブラウザ本体の操作/制御

open

ブラウザで指定したページをロードします。
baseURLを参照するため、パスのみ指定すれば良いです。

【コード】
スクリーンショット 2019-08-24 13.29.10.png

close

ブラウザを終了します。

【コード】
スクリーンショット 2019-08-23 16.48.42.png

select window

ウィンドウロケーターを使用してポップアップウィンドウを選択します。
ポップアップウィンドウが選択されると、すべてのコマンドがそのウィンドウに移動します。
ウィンドウロケーターは、ハンドルを使用してウィンドウを選択します。

【コード】
Qiitaを開いた後に、最初に開いていたGoogleに戻します。
スクリーンショット 2019-09-08 19.54.31.png

【実行結果】
スクリーンショット 2019-09-08 19.44.52.png

set window size

ブラウザのウィンドウサイズを指定します。

【コード】
スクリーンショット 2019-08-24 13.21.19.png

【実行結果】
(1200x780で指定した場合)
スクリーンショット 2019-08-24 13.21.56.png

(200x780で指定した場合)
スクリーンショット 2019-08-24 13.21.40.png

Javascriptの実行

execute script

現在選択されているフレームまたはウィンドウのコンテキストでJavaScriptのスニペットを実行します。
スクリプトフラグメントは、匿名関数の本体として実行されます。
戻り値を変数に保存する場合は、Targetに「return」キーワードを使用し、Valueに変数名を指定します。

【コード】
以下の例では、 count という変数に5を格納しています。
スクリーンショット 2019-08-25 23.57.54.png

また、functionを定義することもできます。
以下は。日付を取得するfunctionを定義した例です。
スクリーンショット 2019-09-06 0.05.31.png

execute async script

Javascriptの非同期処理を行います。

【コード】
スクリーンショット 2019-09-06 0.40.35.png

【実行結果】
ブラウザのconsole log
スクリーンショット 2019-09-06 0.41.24.png

run script

現在のテストウィンドウの本文に新しい <script> タグを作成し、指定したテキストをコマンドの本文に追加します。

【コード】
以下の例では、(無駄にw)Javascriptを使って 「戻る」ボタンをクリックしています。

スクリーンショット 2019-08-26 23.42.36.png
スクリーンショット 2019-08-26 23.42.00.png

ログ出力

echo

コンソールにログを出力します。

【コード】
以下の例では、 store title で ページタイトルを title という変数に格納したものを echo しています。
スクリーンショット 2019-08-23 9.00.23.png

【実行結果】
スクリーンショット 2019-08-23 12.57.07.png

待機処理

wait for element editable

wait for element editable コマンドは、対象の入力テキストボックスが編集可能になるまで待機します。
対象の要素が編集可能になると、次のステップに移ります。また、このコマンドは入力フィールドのみで機能します。

【コード】
以下の例では、 http://only-testing-blog.blogspot.com/2014/01/textbox.html というデモサイトで15秒後に編集可能になるような仕掛けがされている入力テキストボックス ( css=#text2 )を対象としています。
また、タイムアウトの時間はデフォルトの30秒(30000ms)としています。
スクリーンショット 2019-09-04 8.52.34.png

スクリーンショット 2019-09-04 8.56.42.png

wait for element not editable

wait for element not editable コマンドは、対象の入力テキストボックスが編集不可能になるまで待機します。
対象の要素が編集可能になると、次のステップに移ります。また、このコマンドは入力フィールドのみで機能します。

【コード】
以下の例では、 http://only-testing-blog.blogspot.com/2014/01/textbox.html というデモサイトで15秒後に編集不可能になるような仕掛けがされている入力テキストボックス ( css=#text1 )を対象としています。

スクリーンショット 2019-09-04 8.56.47.png

wait for element not present

要素が存在しなくなるまで待機します。

【コード】
以下の例では、「Time left: 10 seconds」(XXの部分は10→0にカウントダウンします)と表示されたテキストが表示されなくなるまで待機します。(実質1秒)
スクリーンショット 2019-09-01 23.56.27.png

wait for element not visible

wait for element not visible コマンドは、ページからの要素が非表示になるまで待機します。
対象の要素が非表示になると、次のステップに移ります。

【コード】
以下の例では、 http://only-testing-blog.blogspot.com/2014/01/textbox.html というデモサイトで15秒後に非表示になるような仕掛けがされている入力テキストボックス ( css=#text4 )を対象としています。15秒後にidがhidden2に変わるため、下記のようにcssセレクタを指定しています。
not_visible.png

wait for element present

要素が存在するまで待機します。

【コード】
以下の例では、「Time left: 10 seconds」と表示されたテキストが10秒後に「Ready!」と表示に変わるまで待機します。
ページ遷移4秒後:スクリーンショット 2019-09-01 23.44.34.png
ページ遷移10秒後:スクリーンショット 2019-09-01 23.44.42.png

スクリーンショット 2019-09-01 23.47.26.png

wait for element visible

wait for element visible コマンドは、ページに要素が表示されるまで待機します。
対象の要素がページに表示されると、次のステップに移ります。

【コード】
以下の例では、 http://only-testing-blog.blogspot.com/2014/01/textbox.html というデモサイトで15秒後に表示されるような仕掛けがされている入力テキストボックス ( css=#text3 )を対象としています。
visible.png

pause

明示的な待機を挟みます。
ただ、 SeleniumIDEのコマンドには、暗黙的な待機が組み込まれているため、 どうしても解決しない場合にのみ使うのが良いです。 例えば、 wait for... のような〜の状態まで待つというコマンドが用意されています。
初めて pause コマンドを選択すると次のようなメッセージが表示されます。

There are implicit waits built into the IDE commands.
If that doesn't get the job done for you then check out the explicit wait commands.
They start with the words `wait for element` (e.g., `wait for element visible`).

(日本語訳)
IDEコマンドには、暗黙的な待機が組み込まれています。
それでも問題が解決しない場合は、明示的な待機コマンドを確認してください。 
それらは「要素を待つ」という言葉で始まります(例えば、「要素が見えるまで待つ」)。

スクリーンショット 2019-08-20 22.39.52.png

【コード】
以下の例では、明示的に1秒(1000ms)待機を挟んでいます。
スクリーンショット 2019-08-26 0.02.20.png

その他

set speed

テストの実行速度を設定します。単位はミリ秒(ms)

【コード】
以下の例では、2秒(2000ms)を設定した例でステップ毎に2秒の待機を挟みます。
スクリーンショット 2019-08-25 23.23.39.png

run

テストケースを再利用(呼び出し)することができます。
以下の例では、 loop scripts を別のテストケースから呼び出しています。
これを活用すれば、共通部分をテストケースとして切り出すなどしておけば。同じようなシチュエーションのテストの場合に冗長なコードを書かなくて済みます。

【コード】
スクリーンショット 2019-08-25 23.33.04.png

select frame

現在のウィンドウ内のフレームを選択します。
0を起点とするインデックス番号でフレームを選択できます。
例えば、 最初のフレームは index = 0 、3番目のフレームは index = 2 を選択します。
また、対象を relative = parent にすると親フレームを選択でき、 relative = top にするとページの先頭に戻ります。

【コード】
以下の例では、 複数のiframeが埋め込まれているデモサイト http://only-testing-blog.blogspot.com/2015/01/iframe1.html でframe毎にh3要素のテキストを検証しています。
スクリーンショット 2019-09-08 11.03.19.png
スクリーンショット 2019-09-08 19.57.23.png

debugger

デバッグしたい箇所に挿入することでテスト実行を中断して、デバッグ作業を行うことができます。
Enterキーを押下することでデバッグモードを抜けます。
ブレークポイント機能(詳しくは こちら)や一時停止ボタンからでも同じように一時停止することができます。

【コード】
スクリーンショット 2019-08-28 12.58.34.png
debugger は途中で一時停止してしまうため、サンプルコードには含んでおりません

ただの宣伝

Seleniumに関する記事を書いたまとめです。書いたのは結構前ですがちょこちょこアップデートしています。

214
238
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
214
238

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?