我使用的是 1.3.2 版的守夜人。在我将 night-watch 更新到最新版本 1.3.4 之前,所有测试都运行良好。测试特别在页面对象中中断。我已经检查了 night-watch 1.3.4 的发行说明,它具有支持页面对象的新功能async/await - https://github.com/nightwatchjs/nightwatch/releases.我相信我收到的错误消息指出要用异步等待包装页面对象。我想知道如何使用 async/await 更新我现有的页面对象。一个带有异步等待的 eg-page 对象将非常有帮助。我在下面列出了带有页面对象和错误消息的示例测试,在将 night-watch 更新到最新版本之前工作正常。任何想法或帮助将不胜感激。Test it('Verify Login', async (browser)=> { await this.loginTest.loginSuccess(browser.globals.Username,browser.globals.Password); this.homepage.expect.element('@profile').to.be.visible; });Page-Objectmodule.exports = { url:function () { return this.api.launchUrl; }, elements:{ btnSignInRegister:'#SignInRegister', btnSelectBusiness:'#business', body:'body', txtUsernameInput:'#login-username', txtPasswordInput:'#login-password', signInBtn:'#SignIn', pageBody:'body', myAccountBtn:'#myAccount', }, commands:[{ clickSignInRegister(){ return this .click('@btnSignInRegister') }, waitForBody(){ return this .waitForElementVisible('@pageBody') }, loginSuccess(username,pwd){ return this .navigate() .waitForBody() .click('@btnSignInRegister') .waitForElementVisible('@btnSelectBusiness',5000) .click('@btnSelectBusiness') .setValue('@txtUsernameInput',username) .setValue('@txtPasswordInput',pwd) .click('@signInBtn') .waitForBody() }, logoutSuccess(){ return this .waitForElementVisible('@btnProfile',5000) .click('@btnProfile') .waitForElementVisible('@btnLogout',5000) .click('@btnLogout') } }]}
2 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
从这个相关的 GitHub 问题:https ://github.com/nightwatchjs/nightwatch/issues/2370
If async/await is being used, chaining is not possible anymore,
because the commands will return a Promise.
But in your testcase, there's no need to use await,
since you're not using the result of the command.
添加回答
举报
0/150
提交
取消