【问题标题】:how do you install and run puppeteer for firefox你如何为 firefox 安装和运行 puppeteer
【发布时间】:2020-11-22 12:23:46
【问题描述】:

您好,我正在做一些网络自动化。我正在尝试打开一个 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);

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

npm i puppeteer-firefox

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

npm WARN 已弃用 puppeteer-firefox@0.5.1:Firefox 支持正在逐渐过渡到 木偶包。从 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 节点安装.js

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

我也尝试过这些错误,但它们没有工作

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

PUPPETEER_PRODUCT=firefox npm install

PUPPETEER_PRODUCT=firefox 纱线安装

【问题讨论】:

  • 你可能想要 playwright-firefox,我相信所有的 puppeteer 项目都已弃用

标签: javascript node.js firefox puppeteer webautomation


【解决方案1】:

请不要再使用puppeteer-firefox 包了。它已被弃用。相反,只需安装 puppeteerFirefox as selected product。这里的example from the puppeteer repository 展示了如何从您的测试脚本启动 Firefox。

【讨论】:

    【解决方案2】:

    我也遇到过类似的问题,你要运行的命令其实如下:

    PUPPETEER_PRODUCT=firefox npm i puppeteer

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

    【讨论】:

    • 谢谢。我一直在使用剧作家(由 puppeteer 团队制作,但他们从谷歌搬到了微软,所以我猜他们不得不更改名称)。 Playwright 内置了 Firefox 支持,并且运行良好。我最终将铬与 puppeteer 一起使用(不是错字)。我会说使用 playwright 来支持 Firefox。
    • 谢谢,@Calahad。没有测试,因为我已经有了 puppeteer 现在需要的东西,但我认为你的答案应该有效。谢谢
    【解决方案3】:

    键入以下命令以找到您的浏览器

    whereis firefox
    OR
    whereis google-chrome
    

    我用的是 chrome,我的也是。你可以用firefox路径替换它。

    /usr/bin/google-chrome

    因此,最后一步。

    export PUPPETEER_EXECUTABLE_PATH='/usr/bin/google-chrome'
    

    就是这样:)

    注意:

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

    更新:

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

    为 puppeteer 安装 firefox。

    npm i puppeteer-firefox
    

    经过测试的代码示例适用于 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);
    
    })();
    

    【讨论】:

      【解决方案4】:

      您也可以尝试从 node_modules 文件夹中删除 puppeteer 和

      npm install
      

      为我工作

      【讨论】:

      • 此模块已弃用!
      猜你喜欢
      • 2021-04-23
      • 2015-10-02
      • 2020-03-21
      • 2011-03-07
      • 2019-04-17
      • 2019-04-24
      • 2021-06-27
      • 2016-07-22
      相关资源
      最近更新 更多