SeleniumIDE の UI-Element その3 UI-Argument
前回は UI-MAP についてでした。
これを使うメリットは何と言っても、テストケースからテスト対象ページ内の要素の定義を分離できるところです。
これは、同一ページに対し複数のテストケースを適用する場合
そのテストケースの保守コストを下げることができる
別ファイルにしておくことでページ定義とテストケース設計を平行にできる
などのメリットがあります。
逆にページ内の要素が少ない場合などでは、別ファイルで定義する手間が無駄になります。
が、画面内の要素が少なくても、これを導入するメリットがある機能がありそうなのです。
リファレンスについているサンプルがこれです。
map.addElement('searchPages', { name: 'result' , description: 'link to a result page' , args: [ { name: 'index' , description: 'the index of the search result' , defaultValues: range(1, 21) } , { name: 'type' , description: 'the type of result page' , defaultValues: [ 'summary', 'detail' ] } ] , getLocator: function(args) { var index = args['index']; var type = args['type']; return "//div[@class='result'][" + index + "]" + "/descendant::a[@class='" + type + "']"; } });
ポイントは args と getLocator ですね。
要素を静的にxPathで定義するのではなく 関数を定義することにより getLocatorメソッドを定義しています。
これに引数として args を定義しています。
が、これ、どういう風に適用されるのかまではたどり着いてないんですよね。
まだまだ先が長い・・・・