ハマログ

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

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日


関連記事

国内と海外の顔文字の違い「:-)」「(^_^)」

一日遅れでこんにちはつーじーです(^_^) 最近は花粉が激しいようでそこらからく…

ApacheでContent Security Policy(CSP)を設定する

先日、脆弱性検査ツールで以下のレポートが出力されました。 Content-Sec…

スプレッドシートテクニック – ショートカット集

つーじーです。先日、人生初の内視鏡検査に行ってきました。ポリープ切除しました。最…


← 前の投稿

次の投稿 →