如何使用 JS 导入异步模块

how to import async modules with JS

可能是我问错了

我正在尝试测试一些网站,并在终端中抛出这个

terminal output

很明显,函数 returns uuid 在代码中被调用之后。 它正常工作,当我在代码中正确使用元素时,所以我认为原因是不正确的导入

这是我的代码:

file.js

describe('final homeTask', () => {
    it('firstassigment', async () => {
        let mainPage = require('../page/main.pageHW.js')
        await browser.url('https://github.com/')

        let signUpButton = await mainPage.topSignUpBtn()
        await signUpButton.click()
    })
})

main.pageHW.js

class MainPage {
    get topSignUpBtn () { return $('a.btn-mktg:nth-child(1)') }
}

module.exports = new MainPage()

这是 Javascript 的问题,而不是 webdriver 的问题,您在 MainPage class:

中使用了 属性
  class MainPage {
      /// The get word make it a property
      get topSignUpBtn () { return $('a.btn-mktg:nth-child(1)') }
  }

  module.exports = new MainPage()

这意味着你不需要括号来使用它,所以,替换:

  let signUpButton = await mainPage.topSignUpBtn()

  let signUpButton = await mainPage.topSignUpBtn;

此外,属性 不需要 await 子句。

如果您想了解更多信息,可以查看 this link