У меня возникают проблемы с обработкой тривиального сценария во время автоматизации. Мне нужно выбрать конкретный вариант с помощью транспортира. Я передаю индекс параметра, который хочу выбрать, а затем нажимаю на него, чтобы выбрать его. Однако моя ошибка метода click()
указывает на то, что метод click()
не определен для этого индекса.
Вот что я пытаюсь сделать - в моем файле selectElements.js
метод раскрывающегося списка определяется как
const selectElement={}
selectElement.selectElementDropdown =function(element,index,milliseconds){
console.log("Selecting element by drop down","OK");
element.all(by.tagName('option')).then(function(options){
options[2].click();
//here index 2 is hardcoded, which can be changed to options[index]
});
if(typeof milliseconds!=='undefined'){
browser.sleep(milliseconds);
}
}
module.exports =selectElement;
Я использую структуру POM, поэтому метод раскрывающегося списка находится в отдельном файле .js
. Я вызываю это в своем файле подкачки
const methodDropDown = require('../BasePage/selectElements.js');
var signUpBankDetails = function(){
this.bankName = element.all(by.css('.form-group')).get(7).element(by.xpath("//label[text()='Select Bank Name']"));
//the selector is clicked to open the drop down
console.log("Start of this block =========>");
this.selectDropDownMethod = function(){
console.log("Drop Down method start ==========>");
this.bankName.click();
browser.sleep(1000);
methodDropDown.selectElementDropdown(this.bankName,0,1000);
};
Я получаю сообщение об ошибке:
Failed: Cannot read property 'click' of undefined
Блок this.bankName.click()
работает нормально, потому что я вижу, что элемент щелкнут, и появится раскрывающийся список, однако выбор, похоже, ошибочен. Я также прикрепил фрагмент кода HTML ниже -
PS- Веб-страница использует Angular2.
element.all(by.tagName('option')).get(2).click();
, чтобы щелкнуть параметр? - person alecxe   schedule 11.04.2017