gpt4 book ai didi

javascript - 无法使用 protractor.js 从弹出窗口的下拉菜单中单击并选择一个值

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:42 24 4
gpt4 key购买 nike

我正在使用 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('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;),因为我的主页是 Angular 页面,但结果是徒劳的。请帮助我从该下拉列表中选择一个值。也许问题在于等待或超时。下面提到了我在控制台中收到的错误。

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

最佳答案

by.className 需要一个单个类名。如果您想使用多个类,请使用 CSS 选择器定位器:

$('.id-login-button.wk-button-primary.wk-button-full').click();

请注意,如果您使用 ESLinteslint-plugin-protractor 插件(绝对是无耻的 self 推销),您可能会更早地发现此错误 -有相关no-compound-classes规则。

作为旁注,尽量避免使用 browser.sleep() 而是使用 browser.wait()和一组内置Expected Conditions .

关于javascript - 无法使用 protractor.js 从弹出窗口的下拉菜单中单击并选择一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43761340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com