为什么我在断言步骤中出现超时错误?

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

我第一次尝试这个

let url = await pa.getPageURL("Employees");
    console.log("URL "+url);

然后我试了这个。两者都在抛出超时错误,但打印出正确的网址。

it('should be able to open Employees page',async () => {
    loginPg.login();
    pa.getPageURL("Employees").then(function(url){
    console.log("URL "+url);
    expect(url).toContain("employees");
})
})

async getPageURL(pageName){
    this.menu.click()
    let url = element(by.xpath('//span[contains(.,"'+pageName+'")]')).click().then(function(){
            return browser.getCurrentUrl();
        })
        return url;
}

我正在写一个测试,它从菜单中点击一个页面链接并断言网址。它工作正常,点击链接并进入正确的页面。我也验证了控制台.日志是正确打印上述代码中的网址。但每次都以超时错误失败。

  • 错误:超时 - 异步调用 Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.在ontimeout (timer.js:475:11) at tryOnTimeout (timer.js:310:5).

我错过了什么?我的所有其他测试都正常工作。请帮助我

jasmine protractor
1个回答
1
投票

试着在你的期望前使用一个返回关键字。

同时确保检查DEFAULT_TIMEOUT_INTERVAL,它默认是5秒。试着把它改成10秒。所以,这个时间足够登录,然后进行实际的期待。

© www.soinside.com 2019 - 2024. All rights reserved.