Я использую protractor.js. С помощью которого я могу войти в свое приложение. Но после немедленного входа в систему появится всплывающее окно, и мне нужно выбрать из него раскрывающееся значение. но с помощью protractor.js я не смог этого сделать. Код указан ниже.
describe('angularjs homepage todo list', function() {
it('should add a todo', function() {
browser.ignoreSynchronization = true;
browser.get('https://sample.com');
//browser.waitForAngular();
//browser.sleep(10000);
browser.pause();
element(by.id('userId')).sendKeys('[email protected]');
browser.manage().timeouts().pageLoadTimeout(5000);
element(by.id('password')).sendKeys('*********');
browser.manage().timeouts().pageLoadTimeout(5000);
**element(by.className('id-login-button wk-button-primary wk-button-full')).click();**
//browser.manage().timeouts().pageLoadTimeout(5000);
//browser.ignoreSynchronization = false;
browser.sleep(20000);
browser.switchTo().defaultContent();
browser.wait( done => {
return element(by.model('productSelectionCtrl.selectedProduct')).isPresent();
})
.then(()=>{
element(by.model('productSelectionCtrl.selectedProduct')).click();
element(by.cssContainingText('option', 'Master Suite')).click();
browser.sleep(20000);
done;
});
});
});
Мой код работает до строки, выделенной жирным шрифтом. После этого я взял имя класса всплывающего окна, которое нужно щелкнуть, и мне нужно было выбрать значение «Основной набор» из раскрывающегося списка, в котором есть ng-model (productSelectionCtrl.selectedProduct). Но этого не делается. Не могли бы вы помочь мне с этим?
Я даже пытался использовать (browser.ignoreSynchronization = false;), так как моя домашняя страница является угловой, но безуспешно. Пожалуйста, помогите мне выбрать значение из этого выпадающего списка. Возможно, проблема связана с ожиданием или тайм-аутом. Ошибка, которую я получаю в консоли, упоминается ниже.
Failures:
1) angularjs homepage todo list should add a todo
Message:
Error: Timeout - Async callback was not invoked within timeout specified by
jasmine.DEFAULT_TIMEOUT_INTERVAL.
Stack:
Error: Timeout - Async callback was not invoked within timeout specified by
jasmine.DEFAULT_TIMEOUT_INTERVAL.
at tryOnTimeout (timers.js:232:11)
at Timer.listOnTimeout (timers.js:202:5)
1 spec, 1 failure
Finished in 36.928 seconds
[18:20:14] I/launcher - 0 instance(s) of WebDriver still running
[18:20:14] I/launcher - chrome #01 failed 1 test(s)
[18:20:14] I/launcher - overall: 1 failed spec(s)
[18:20:14] E/launcher - Process exited with error code 1