Я в основном знаком с java selenium, и я новичок как в JS, так и в Protractor. Допустим, я пытаюсь выбрать опцию из списка опций с общим идентификатором.
var options = $('.options');
Как мне получить все элементы с этим общим идентификатором, а затем выбрать один из них по его тексту? Я не могу сделать driver.findElements, как в java, так как нет ссылки на драйвер.
Это то, что я пробовал до сих пор, но это не работает, и я думаю, что это связано с моей неопытностью в JS.
this.selectCompanyCode = function(companyCode) {
dropDownMenus[0].click();
var companyCodeOptions = $('[ng-bind-html="companyCode"]');
companyCodeOptions.filter(function (elem) {
return elem.getText().then(function text() {
return text === companyCode;
});
}).first().click();
};
.click()
к своему ответу, поэтому мой код должен делать то же самое, что и ваш код выше, за исключением того, что он не использует.each()
для перебора всего массива, поскольку в этом нет необходимости. Если нет, добавьте комментарий, что не работает... пытаюсь вам помочь. - person Gunderson   schedule 02.11.2016dropDownMenus[0].click()
; Обычно вы должны использовать.get()
для извлечения элемента по индексу из ElementArrayFinder (см. ссылку в моем ответе ниже). Но также у вас нет ссылки на dropDownMenus в этой функции. Это глобальная переменная? Если нет, то это определенно не определено. Вам также может понадобиться оператор возврата из companyCodeOptions.filter. Итак,return companyCodeOptions.filter(...)
- person Gunderson   schedule 02.11.2016