やり取りするエレメントは、常にそれぞれの HTML フレームを基準に検索されるため、UI の自動化ではその点を考慮する必要があります。つまり、異なるフレーム上のエレメントとやり取りする場合は、常に SwitchFrame コマンドを使用して UI テストのコンテキストを設定する必要があります。
たとえば Web パネルで、選択リストや何らかのプロンプトルールを使用する際には、次に示すように、元のウィンドウの上に典型的なフレームが描画されます:
このようなフレームとやり取りするためには、SwitchFrame 関数を使用する必要があります。
この関数に、次の形式で FrameId を渡します:
-
index=N //N はゼロ (0) から始まるインデックス
または
-
relative=parent //"親" フレームに移動
または
-
relative=top //"トップ" フレームに移動
コマンドは、GXtest Recorder を使用していつでも記録できます。GXtest Recorder では、やり取りする必要がある SwitchFrame コマンドが自動的に追加されます。
SwitchFrame
作業するフレームを設定します。
Parameters:
- FrameId: フレームのインデックスを示す特殊文字列です ("relative=parent"、"relative=top"、"index=0"、"index=1"、...)。
使用例:
&driver.SwitchFrame("index=0")
&driver.SwitchFrame("relative=top")
注: フレームの処理はブラウザーによって異なる場合があります。その場合、WA は以下のようにブラウザーによって異なるコマンドを持つことになります:
if (&driver.GetBrowser() = "Firefox")
&driver.SwitchFrame("relative=parent")
else
&driver.SwitchFrame("index=0")
endif