http://theintern.io/: что является лучшим способом для поиска идентификаторов виджетов, созданных dojo, в функциональных тестах, следует ли использовать методы webdriver "elementBy..." или, возможно, "dijit/registry" или "dojo/query"?Dojo Intern: какой лучший способ найти виджеты или элементы страницы?
В настоящее время я использую реестр 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
})
UPDATE
В настоящее время приложение протестированный избегает настройки идентификаторов на любой, если ее элементы страницы, потому что есть кратна того же типа виджетов используются. Поэтому найти их другими способами сложнее, но я справился с этим примером и с помощью dojo/query, и, конечно, я мог бы использовать xpath. Приведенный выше пример является приблизительным примером, и я мог немного сузить поиск.
Мне просто интересно, какие идеи у людей были для поиска элементов страницы, я сосредоточился на идентификаторах виджета, но поиск любого атрибута был бы полезен. Возможно, есть плагин для Intern, который ищет текст, например?
Хм, это немного смущает. Не могли бы вы рассказать немного больше о том, что вы пытаетесь выполнить, когда вам кажется, что вам нужно перебирать все виджеты страницы, просто чтобы убедиться, что правильный ответ предоставлен для вашей ситуации? –