无需测试即可通过testcafe启动浏览器

时间:2019-04-23 13:43:17

标签: cross-browser automated-tests e2e-testing web-testing testcafe

我想使用testcafe启动通过内部最终外部浏览器提供程序提供的浏览器。我不需要任何测试功能。但我希望能够使用takeScreenshot,resizeWindow等。

这是我的代码。

const pool = require("./node_modules/testcafe/lib/browser/provider/pool.js");

pool.getProvider("chrome").then((provider) => {
    const plugin = provider.plugin;

    console.log("open")

    plugin.openBrowser("foo", "http://google.de", "chrome").then(() => {
        console.log("done");

    }).catch(console.warn);;

    console.log("early");

}).catch(console.warn);

如果使用此代码运行或调试文件,则打开的浏览器承诺将永远无法解决。控制台显示openearly,然后程序退出。

如果我将代码复制并粘贴到交互式节点外壳中,则浏览器将启动。 (我收到一个connection is null的例外,但是如果我启动文件,此代码将永远不会运行。

我在做什么错了?

更新:这是使用async / await的代码,但也不起作用:

const pool = require("../node_modules/testcafe/lib/browser/provider/pool.js");

(async () => {
    const provider = await pool.getProvider("chrome");
    const plugin = provider.plugin;
    await plugin.openBrowser("foo", "http://google.de", "chrome");
    console.log("done");
})();

1 个答案:

答案 0 :(得分:3)

我们建议您不要使用此内部API,因为它可以随时更改,恕不另行通知。 您可以改为使用testcafe-browser-tools模块。

plugin.openBrowser方法是异步的。因此,您需要等待方法执行的结果。有关更多详细信息,请参见TestCafe的runBrowser code