記録されたスクリプトの行の構文を理解すると、スクリプトが読みやすくなります。 オブジェクトをテストするコマンドは、同一の構文要素で構成されています。 構文要素には、アプリケーション ウィンドウ (アプリケーションのメイン ウィンドウやダイアログ ボックスなど) のための With ステートメントに続き、クラス、属性、操作を識別するロケーターまたはオブジェクト マップ項目が含まれます。
オブジェクト マップはテスト資産の一種であり、コントロールまたはウィンドウのロケーターではなく、コントロールまたはウィンドウに論理名 (エイリアス) を関連付ける項目が含まれています。
Silk Test Workbench では、スクリプトを記録すると、デフォルトで、スクリプト コンテキストにオブジェクト マップ項目が組み込まれます。
With _desktop.BrowserApplication("webBrowser") With .BrowserWindow("browserWindow") .DomListBox("quickLinkJumpMenu").Select("Auto Quote") End With End With
With_ desktop.<application> の部分は、メイン アプリケーション ウィンドウを示しています。
上記の例の DomListBox の部分は、使用するクラスを示しています。
("quickLinkJumpMenu") の部分は、オブジェクトの属性を示しています。 この場合、属性はリスト ボックスのリンク メニューを示しています。 一方、Select() の部分は、オブジェクトに対して実行する操作またはコマンドを示しています。
With _desktop.Window("untitledNotepad") .MenuItem("aboutNotepad").Select() With .Dialog("aboutNotepadDialog") .PushButton("ok").Select() End With End With
オブジェクト マップ項目はかっこと引用符 ("") で囲まれ、ロケーターのキャプションを使用する必要がなくなります。
Silk Test Workbench では、識別されたオブジェクトのリテラル参照はロケーターと呼ばれます。 Silk Test Workbench では、スクリプトを記録すると、デフォルトで、スクリプト コンテキストにオブジェクト マップ項目が組み込まれます。 オブジェクト マップをオフにすると、スクリプトの記録時に、オブジェクト マップ項目ではなくスクリプト コンテキストにロケーターが含まれます。
With _desktop.BrowserWindow("/BrowserApplication[1]//BrowserWindow") .DomLink("@textContents='Court: Gender pay lawsuit can go to trial'").Select() End With
With_ desktop.<application> の部分は、メイン アプリケーション ウィンドウを示しています。
最初の例の DomLink の部分と 2 番めの例の MenuItem の部分は、使用するクラスを示しています。
("@textContents='Court: Gender pay lawsuit can go to trial'") の部分は、オブジェクトの属性を示しています。 この場合、属性はテキスト コンテンツを示しています。 一方、Select() の部分は、オブジェクトに対して実行する操作またはコマンドを示しています。
With _desktop.Window("@caption='Untitled - Notepad'") .MenuItem("@caption='About Notepad'").Select() With .Dialog("@caption='About Notepad'") .PushButton("@caption='OK'").Select() End With End With
caption 属性は、テストするオブジェクトを示しています。 caption は、アプリケーションのメイン ウィンドウ ("@caption='Untitled - Notepad'") に続き、メニュー項目 ("@caption='About Notepad'")、後続のダイアログ ボックス ("@caption='About Notepad'")、クリックするボタン ("@caption='OK'") を示しています。