Other Verification Options
自動化に使用されるプロトコルの機能によって、他にもいくつかの検証オプションがあります。RFB (VNC)プロトコルは、以下の機能をサポートしています:
画面更新イベント画面更新イベントは、デスクトップイメージが変更されるたびにサーバーから受信されます。デスクトップ上でウィンドウが開いたり、更新されたりすることが予想される場合、更新イベントをデスクトップ変更の迅速なテストに使用することができます。この原理は、画像検索がサポートされていなかった初期の製品バージョン(VNCRobot 1.2まで)でしばしば使用されていました。様々な VNC サーバーが異なる画像更新戦略を持つかもしれないので、この検証方法はあまり信頼性がなく、念のためリストアップします。
ベルイベントは、 サーバーがベル(ビープ音)を鳴らしたときに発生します。このようなイベントは通常、デスクトップにベル文字(ASCII 0x07)を出力することで生成されます。いくつかのGUIコンポーネントもベルを鳴らすことが知られている。たとえば、テキスト・フィールドでBackspaceキーを押したときに、削除する文字がない場合にビープ音が鳴ります。
サーバー側のクリップボード更新.これらのイベントは、例えばデスクトップ上で押されたCtrl+CやCtrl+Xによって、サーバーのクリップボードがテキストで更新されたときに鳴ります。
これらのイベントは、他のプロトコル(クライアント)でサポートされている場合もあれば、サポートされていない場合もあることに注意してください。テストスクリプトを他のプロトコルに移行する場合は、何がサポートされ、何がサポートされないかを必ず確認してください。
この3つの機能はすべて Waitforコマンドで利用できます。動作やその他のパラメータの詳細についてはLanguage Reference#waitfor.
更新待ちは、指定したサイズ(範囲)の画面更新を待つ。画面のXX%が更新されるまで待つ」というような言い方ができる。デフォルトでは、このコマンドは1つの大きな更新を待ちます。Windows VNCサーバーは大きな更新を小さな更新に分割することを好むので、"cumulative "パラメーターを "true "に設定してコマンドを使用することをお勧めします。また、アプリケーションによっては、最初に空のウィンドウが表示され、後で別の更新イベントでコンテンツが配信されるような、より長い一連の更新を行うものもあるため、更新条件が満たされた後に、適切な時間値でwaitコマンドを設定することをお勧めします。次の例では、Windows XPでInternet Explorerを起動し、GoogleのWebサイトを開いています。
JSPress Windows+r wait=3s Typeline iexplore Waitfor update extent="90%" cumulative=true wait=5s Press Ctrl+O wait=3s Typeline google.com Waitfor update extent="80%" cumulative=true wait=5s
ベル待ちは、サーバーから1つ以上のベルイベントを受信するか、指定したタイムアウトに達するまで、スクリプトの実行を一時停止します。いくつかのGUIケースを除いて、このコマンドはWindowsでは使用しない。これは、コンソールコマンドを実行し、それが完了するまで待ったり(
"%26lt;command>; echo -e ' \007'"
) 、成功したかどうかをテストしたり("%26lt;command%26gt; %26%26 echo -e ' \007'"
) することができます。Ubuntu Linuxでファイル検索結果を待つ簡単な例を以下に示す。JSTypeline "find /lib -name dummy.txt; echo -e '\007'" Waitfor bell timeout="1m"
クリップボード待ちサーバーのクリップボードの更新を待ちます。これは、テキストコンテンツが正常にデスクトップにコピーされ、クライアントに転送されたことを確認するために使用されます。テキストの転送自体はWaitforコマンドを必要とせず、サーバー側のクリップボードの内容が変更されるたびに自動的に行われます。テキストは、_SERVER_CLIPBOARD_CONTENT変数を通してスクリプトで利用できるようになります。様々なVNCサーバーでは、クリップボード転送を動作させるために追加の設定手順が必要になる場合があることに注意してください。詳細はRelease Notes#vncドキュメントを参照してください。以下の例では、Ubuntu Linux上のGNOMEテキストエディタでクリップボード転送をデモしています。
JSType test wait=1s Press Ctrl+A Waitfor clipboard timeout=5s Type "Copied: {_SERVER_CLIPBOARD_CONTENT}"