如何在Mocha中使用Await和ESM获得Selenium驱动程序?

时间:2018-12-17 18:02:18

标签: node.js selenium ecmascript-6 mocha

我有与此gist类似的代码。基本上,我试图将ESM与Mocha结合使用,所以我的hacky文件带有...

let driver = await import("./WireDriver.mjs");

我遇到的问题是驱动程序没有作为诺言或实际驱动程序返回。由于我们使用的是旧版chrome,我的断点无法正常工作,但是当我运行时...

console.log(`asdsa ${typeof d} ${Object.keys(d)} ${Object.getOwnPropertyNames(d)}`);

返回为

  

asdsa对象默认默认值

如何等待实际返回驱动程序对象?

更新

我尝试将WireDriver简化为...

const test = () => {
    return new Promise((res, rej) =>{
        res("This is a test");
    });
};

export {test}

然后尝试像这样使用它...

const base = await import("./WireDriver.mjs");
base.test().then((test)=>{
    console.log(`Is driver loaded? ${test}`);
});

现在我跑步时...

  

UnhandledPromiseRejectionWarning:TypeError:base.test.then不是函数

1 个答案:

答案 0 :(得分:0)

此版本似乎有效...

import {BasePage} from "./pages/BasePage";

const driver = ()=>{
    let page = new BasePage();
    return page.driver;
};

export {driver}

(async () => {
   const base = await import("./WireDriver.mjs");
   const driver = await base.driver();
})