你如何为 firefox 安装和运行 puppeteer

Rob*_*obo 10 javascript firefox webautomation node.js puppeteer

嗨,我正在做一些网络自动化。我正在尝试打开一个 url,但我在 chrome 控制台中收到数据 URL 错误,所以我转向 firefox 控制台以解决在 chrome 控制台中打开的无数据 url 问题。问题是“npm install puppeteer-firefox”无法为 firefox 安装 puppeteer。如何为 firefox 安装 puppeteer 并将其包含在代码中以便我可以使用它?

由于数据 url 错误,代码在 chrome 中不起作用

const url = await page.evaluate(async () => {

    
        document.querySelector('.n3VNCb').src;
        
    });
    
    url.toString();
    
    await page.goto(url);
Run Code Online (Sandbox Code Playgroud)

我在 node.js 命令提示符中输入的内容来安装 puppeteer firefox。这没有用

npm i puppeteer-firefox
Run Code Online (Sandbox Code Playgroud)

我从 node.js 命令提示符收到的错误

npm WARN 已弃用 puppeteer-firefox@0.5.1:Firefox 支持正在逐渐过渡到 puppeteer 包。从 puppeteer v2.1.0 开始,您可以与 Firefox Nightly 进行交互。puppeteer-firefox > 包将一直可用,直到转换完成,但不再主动维护。有关更多信息,请访问https://wiki.mozilla.org/Remote

puppeteer-firefox@0.5.1 安装 C:\Users\user\Desktop\filename\filename\node_modules\puppeteer-firefox node install.js

错误:无法下载 Firefox rv0.0.1!错误:下载失败:服务器返回代码 404。网址:https : //github.com/puppeteer/juggler/releases/download/v0.0.1/firefox-win64.zip

我也尝试过这些,因为错误说要做,但它们没有用

(节点:14348)UnhandledPromiseRejectionWarning:错误:找不到最新的浏览器修订版。运行“PUPPETEER_PRODUCT=firefox npm install”或“PUPPETEER_PRODUCT=firefox yarn install”以下载支持的Firefox浏览器二进制文件。

PUPPETEER_PRODUCT=firefox npm install

PUPPETEER_PRODUCT=firefox 纱线安装

Cal*_*had 10

我有一个类似的问题,你必须运行的命令实际上如下:

PUPPETEER_PRODUCT=firefox npm i puppeteer

来源:https : //github.com/puppeteer/puppeteer/blob/v5.2.1/docs/api.md#puppeteerlaunchoptions


小智 8

请不要再使用该puppeteer-firefox软件包。它已被弃用。相反,只要安装puppeteerFirefox作为选择产品。这是puppeteer 存储库中的示例,显示了如何从测试脚本启动 Firefox。


zar*_*pio 6

输入下面的命令来找到您的浏览器

whereis firefox
OR
whereis google-chrome
Run Code Online (Sandbox Code Playgroud)

我用的是铬合金,我的也是。您可以将其替换为 firefox 路径。

/usr/bin/google-chrome

因此,这是最后一步。

export PUPPETEER_EXECUTABLE_PATH='/usr/bin/google-chrome'
Run Code Online (Sandbox Code Playgroud)

就是这样 :)

笔记:

您应该将此变量添加到您的 shell 配置中,~/.bashrc否则~/.zshrc在重新启动后,您将丢失此变量值。或者更多地在全球范围内/etc/environment

更新:

上面的答案过去对我有用,但以下是最合适的解决方案,仍然适用于 Firefox。

为 puppeteer 安装 firefox。

npm i puppeteer-firefox
Run Code Online (Sandbox Code Playgroud)

代码示例经过测试,适用于 chrome 和 firefox。

const puppeteerChrome = require('puppeteer');
const puppeteerFirefox = require('puppeteer-firefox');

(async () => {

    const test = async browser => {
        const page = await browser.newPage();
        await page.setViewport({
            width: 1280,
            height: 800
        });
        await page.goto('https://www.bbc.com/news');   
        await page.hover('#nw-c-most-read-heading__title');
        await page.screenshot({ path: 'bcc-most-read.png' })
        
        await browser.close();
    }

    const chrome = await puppeteerChrome.launch({
        headless: false,
        slowMo: 50
    });
    await test(chrome);

    const firefox = await puppeteerFirefox.launch({
        headless: false,
        slowMo: 50
    });
    await test(firefox);

})();
Run Code Online (Sandbox Code Playgroud)