gpt4 book ai didi

javascript - Protractor 不等待重定向

转载 作者:行者123 更新时间:2023-11-29 10:10:34 24 4
gpt4 key购买 nike

我有用 Jasmine 编写的 Protractor 代码,应该用于登录用户。不幸的是,在转到根 url 后需要花费相当长的时间(大约 5 秒)进行重定向,我无法让 Protractor 等待它。我已经尝试过 browser.wait,我已经尝试过使用 promises,我已经尝试过 this blogpost ,但什么也没做。它仍然不等待。登录页面是来自 Keycloak 服务器的页面,这就是我使用 driver.findElement 而不是 element 的原因。这是我当前的代码:

describe('my app', function() {
it('login', function() {
var driver = browser.driver;
browser.get('/');
console.log('get');
driver.findElement(by.id('username')).isPresent().then(function() {
console.log('waited');
driver.findElement(by.id('username')).sendKeys("test");
driver.findElement(by.id('password')).sendKeys("test");
driver.findElement(by.id('kc-login')).click();
driver.findElement(by.css('.page-header')).isPresent().then(function() {
console.log('ok');
expect(browser.getLocationAbsUrl()).toMatch("/test");
});
});
});
});

你知道我该怎么做才能让它发挥作用吗?我用这个种子开始了 Protractor 项目:https://github.com/angular/angular-seed

最佳答案

您需要关闭同步:

var EC = protractor.ExpectedConditions;

describe('my app', function() {

beforeEach(function () {
browser.ignoreSynchronization = true;
browser.get('/');
});

it('login', function() {
var username = element(by.id('username'));
browser.wait(EC.visibilityOf(username), 10000);

username.sendKeys("test");
element(by.id('password')).sendKeys("test");
element(by.id('kc-login')).click();

var header = element(by.css('.page-header'));

browser.wait(EC.visibilityOf(header), 10000).then(function () {
console.log('logged in');
});
});
});

请注意,我还更新了测试:切换回 elementbrowser,添加了 browser.wait() 内置-在预期条件中。

关于javascript - Protractor 不等待重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34311036/

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