我正在使用量角器.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('johny.selvaraj@test.com');
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) 的下拉列表中选择一个值“Master suite”。但这还没有完成。你能帮我解决这个问题吗?
我什至尝试使用 (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