sikulixのwaitとsleepの違いを解説~待ちコマンドを使い分ける方法

sikulixで画面表示や処理が終わるのを待つコマンドとして、主にwaitコマンドとsleepコマンドの2種類が用意されています。

waitとsleepの2つのコマンドの違いと使い分ける方法について解説したいと思います。

 

sikulixでは待ち時間を設けることが重要

sikulixでは処理のコマンドとコマンドの間に待ち時間を設けるコードを書くことが非常に大切です。

なぜならば、処理を実行しても次の処理が入力可能になるまでにタイムラグが生じるからです。

例えばブラウザを起動させてアドレスバーにURL入力する場合、ブラウザが起動して入力を受け付ける前に処理が行われることがあります。

その結果、自動プログラムの処理に失敗してしまいます。

自動化処理で良く起こりやすいエラー画面

そうしたエラーを防ぐために一定の待ち時間を設けることがsikulixの自動プログラムにおいては求められます。

sikulixの処理を待つコマンドは2種類

sikulixでは、処理を待つコマンドとして、2種類のコマンドがよく使用されます。

  • sleep
  • wait

これらの待つコマンドを挟むことで、処理のタイムラグを吸収し、自動処理を問題なく実行させることができます。

sleepコマンドとwaitコマンドの違いは何か?

それでは、sleepコマンドとwaitコマンドどういった違いがあるのでしょうか。

sleepコマンドは秒数のみ引数指定

sleepコマンドはsleep(2)といった形で記述し、引数として秒を括弧内に記述します。

sikulixのsleepコマンドのサンプルコード

今回のsleep(2)の場合は、2秒待つという処理が行われることになります。

waitコマンドは画像を引数に設定可能

waitコマンドもsleepコマンド同様に、wait(2)という形式で記述し、2秒待つという処理が可能です。

sikulixのwaitコマンドのサンプルコード、秒数のみ引数に設定

しかし、waitコマンドの場合、wait(画像,秒数)といった書き方ができます。

この場合、「画像が表示されるまで○秒待つ」といった処理になります。

【コメント修正版】sikulixのwaitコマンドのサンプルコード、画面表示を待つ画像と秒数のみ引数に設定

sleepコマンドは単純に秒数を待つだけなのに対し、waitコマンドは秒数待つことに加え、画像が表示されるのを待つことができる点に違うポイントです。

画面表示を待ちたい場合にはwaitコマンドを使用

sleepとwaitの使い分けとしては、画像表示を待ちたい場合にはwaitコマンドを利用します。

ブラウザで「グラフが表示されるまで待つ」という処理を行いたいとします。

sleepの場合、グラフ表示にかかる十分な秒数待って処理を行いますが、waitの場合は画像が確認できた場合、すぐに後段の処理が開始されます。

sikulixの待ちコマンドsleepとwaitの使い分けを考えたサンプルコード

使い分け的なポイントとしては、単なる秒数待ちの場合はsleep、画像表示を待つ場合はwaitといった形です。

ただ、使い分けが面倒な場合は、機能的にwaitはsleepも兼ねているため、waitのみ利用するのも選択肢として有効です。

まとめ・終わりに

今回、sikulixで待ちを行うコマンドとしてsleepとwaitの2種類を紹介しました。

sleepは単に引数として指定された秒数だけ待つのに対し、waitは画像を引数として、その画像が表示されるまで○秒待つといった待ち方が可能です。

waitコマンドはsleepコマンドの機能を兼ねているため、待つコマンドはwaitに統一してもよいかもしれません。