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

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

我想使用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然后程序退出。

如果我将代码复制并粘贴到交互式节点shell中,则浏览器将启动。 (我得到一个例外,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");
})();
cross-browser automated-tests e2e-testing web-testing testcafe
1个回答
3
投票

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

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

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