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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无需测试即可通过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然后程序退出。

如果我将代码复制并粘贴到交互式节点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");
})();
答案

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

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

以上是关于无需测试即可通过testcafe启动浏览器的主要内容,如果未能解决你的问题,请参考以下文章

TestCafe 默认与命名类

有没有办法将TestCafe指向“localhost”而不是机器IP?

如何使用 Testcafe 测试推送通知

testcafe 冻结执行

通过“ npm install”安装时找不到Testcafe命令

地理定位移动测试,无需 https 即可进行网络地理定位