http://theintern.io/ : 機能テスト内でDojoが生成したウィジェットIDを見つける最良の方法は何ですか?
現在、dijit レジストリを使用して、ラベル値や属性などの識別子によって興味のあるウィジェットが見つかるまで、すべてのウィジェットをループ処理しています。しかし、これを行うために、コレクションを反復処理しているだけregistry.toArray()
で、少しラフに感じます。
例えば
return this.remote.get(url)
.execute(function(){
// return the id of a widget by matching label text
var widgetId = null;
require(["dijit/registry"], function(registry){
for (var i = 0; i < registry.toArray().length; i++){
if (registry.toArray()[i].label && registry.toArray()[i].label === "someLabelText"){
widgetId = registry.toArray()[i].get("id");
break;
}
}
});
return widgetId;
})
.elementById(id)
.click()
.end()
.then(function(){
//assert something
})
アップデート
現在、テスト中のアプリケーションは、同じタイプのウィジェットが複数使用されているため、そのページ要素に id を設定することを回避しています。したがって、他の手段でそれらを見つけることは困難ですが、上記の例と dojo/query を使用してそれを管理しました。もちろん、xpath を使用することもできました。上記の例は大まかな例であり、検索を少し絞り込むこともできました。
私は、ページ要素を見つけるために人々がどのようなアイデアを持っているのか疑問に思っていました.私はウィジェットIDに集中していましたが、属性を見つけることは役に立ちます. たとえば、テキストを検索する Intern へのプラグインがあるのではないでしょうか?