使用 Webdriverio 和 Chai 验证导航到的 URL

问题描述 投票:0回答:2

我正在使用 webdriverio v4 和 chai 在登录表单中输入值,单击登录按钮并验证导航到的 URL:

describe('login form', function () { 
    it('should allow access with correct credentials', function () {
        LoginPage.open();
        LoginPage.username.setValue('name');
        LoginPage.companyCode.setValue('100');
        LoginPage.password.setValue('password');
        LoginPage.loginButton.click();

        expect(browser.getUrl()).to.equal('URL path');
    });    
});

值已成功输入,并且已导航到预期的 URL。但是,browser.getURL() 返回的是基本 URL 而不是新 URL?

我做错了什么?

javascript chai webdriver-io
2个回答
1
投票

URL 可能检索得太快。您可能需要等到页面加载新页面后才能获取 URL。

可以使用类似于

waitUntil
的内容并检查回调中的 URL。像这样:

browser.waitUtil(function() {
    return browser.getUrl() === urlToCheck;
}, 5000);

参见:http://webdriver.io/api/utility/waitUntil.html


0
投票

我遇到了同样的问题,我可以通过使函数异步并在

browser.getURL()
函数前面添加等待来解决此问题。

describe('login form', async () => { 
it('should allow access with correct credentials', function () {
    await LoginPage.open();
    await LoginPage.username.setValue('name');
    await LoginPage.companyCode.setValue('100');
    await LoginPage.password.setValue('password');
    await LoginPage.loginButton.click();

    await expect(await browser.getUrl()).to.equal('URL path');
    });    
});
© www.soinside.com 2019 - 2024. All rights reserved.