ハマログ

株式会社イーツー・インフォの社員ブログ

ITツールの機能紹介-SeleniumIDEのループを1000回以上実施する方法-

つ~じ~です。最近ちょっと体調の都合で休みがちです、皆さんも体調管理にお気を付けください。お仕事も大切ですが、体は資本です。粗末にせずに大切にしましょう。ところでゴールデンウィークはいつ始まるのでしょうか?もう終わった??休んだ気がしないのですが!???

さてさて、今回はまた自動テストの話題を。過去の記事は以下をご参考。

テストに役立つツール紹介 -selenium IDE【上級】-

私は弊社の中でも『Selenium IDE』の構築に一番従事している者ですが、そんな構築の最中にとある問題に見舞われました。

SeleniumIDEは1000回を超えるループができない?

某PJで「データを3万件量産したい」という事で、3万回ループするような自動テストを構築しました。

しかしなぜか1000回目でエラーを吐いて止まってしまいます。1000回ぴったりです。

エラー内容を示すような表示もなく、なぜ止まったのか当時わかりませんでした。

「もしかしてループ処理は1000回が上限なのでは?」と思ったのですが、

[selenium ide 1000回]
[selenium ide 上限]
[selenium ループ 上限]

等々でGoogle検索してもいまいち良い情報がヒットしません。SeleniumIDEの使い方をまとめたQiitaやブログを見漁っても良い情報が見当たりません。オワタ

そこで満を持してSeleniumIDE本家のヘルプページへとアクセスするのでした。

■公式コマンド一覧:https://www.selenium.dev/selenium-ide/docs/en/api/commands

全部英語です。オワタ

それでも頑張って読み解いた結果、あっさり答えは見つかりました。

「The defaults value is set to 1000.」「デフォルトは1000回です。」

ハイやっぱり1000回でした、答えが見つかってホッとしました。

ここで大事なことは「デフォルトは」のところです。つまり上限変えられるのでは?と。とても分かりにくい引数の解説ページを調べて自分なりに研究を重ねたところ、

■引数解説ページ:https://www.selenium.dev/selenium-ide/docs/en/api/arguments

どうやら以下のようにValueに上限回数を入力するとその回数までループ処理させてくれるようです。以下の例だと10001回までループできます。

これで実際1000回以上のループができるようになりました。めでたしめでたし

このValue設定はどのループ処理でも使えます。
(times…end、while…end、do…repeat if、for each…end)

補足(インクリメント値を加算させる方法)

上記の参考画像に載っておりますが、これも新しく知ったことなので本稿にまとめます。

ループ処理といえばインクリメント(i++のようなやつ)が必須となります。試しにSeleniumIDEで以下のように記述してみますが、

| execute script | return ${count} + 1 | count |

これだと挙動がおかしくなります。なぜなら上記の記述だと、「+1」を文字列として判定してしまうためです。このまま実行を続けると

0
01
011
0111
:

のように1という文字をくっつけていくプログラムになってしまいます。これを解決するためには、

| execute script | return + ${count} + 1 | count |

のように、return句の後に「+」を付けると数値として計算してくれます。

減算の場合は上記のような記述は不要なので不思議なものです。
(「return ${count} – 1」で成功する)


今後も研究を重ねて便利にツールを使ってまいりましょう。今回はこれにて

1000回doeachforIDErepeatSeleniumtimeswhileループ上限回数

  つーじー   2023年5月16日


関連記事

ITツールの機能紹介-SeleniumIDEの技術開拓 ランダムを組み込む方法-

つ~じ~です。ニュース見れば身近でも遠くでも悲しい出来事ばかりで気が滅入りますね…

もはやドッキリ!?なイベント

こんばんは! 今日は先日行ってきたイベントについて書こうと思います! 「第12回…

テストサイズの話

こんにちは。 koma です。 この間までずっと、アクセシビリティの意味は「利用…


← 前の投稿

次の投稿 →