【问题标题】:Is there a way to set an specific display at chromium launch options?有没有办法在铬启动选项中设置特定的显示?
【发布时间】:2022-01-20 20:22:41
【问题描述】:

我正在使用 Puppeteer 进行节点应用,我需要将 Xvfb 显示设置为浏览器的主显示,但我似乎找不到任何方法来做到这一点。 我最接近我想要的是使用'--use-fake-device-for-media-stream',但我想设置为真实设备而不仅仅是测试视频。 反正我能做到吗?

【问题讨论】:

    标签: javascript node.js google-chrome puppeteer chromium


    【解决方案1】:

    这个解决方案对我有用:

    # install the package
    apt-get install -y xvfb
    
    # set display variable
    export DISPLAY=:0
    
    # start Xvfb daemon in the background (only once)
    /usr/bin/Xvfb :0 -screen 0 1024x768x24 &
    
    # wait a bit to let it come up (only once)
    sleep 5
    
    # add prefix "xvfb-run" to "node" or "python" script
    xvfb-run node myscript.js
    # or
    xvfb-run python myscript.py
    

    启动 puppeteer 时不要忘记设置 { headless: false }。

    来源:https://anti-captcha.com/apidoc/articles/how-to-integrate-the-plugin

    【讨论】:

    • 哇,这实际上是用 xvfb 开始我的脚本的,谢谢!但实际上,并没有解决整个问题。我将使用这个节点应用程序来共享我的屏幕,所以我使用“--use-fake-ui-for-media-stream”来跳过选择屏幕提示,当我从 xvfb 开始时它什么都不做.关于如何解决这个问题的任何想法?
    • 你能详细说明你想要做什么吗?比如,你想用 puppeteer 执行什么步骤。也许只有我一个人,但它肯定也可以帮助其他人更好地理解你的问题
    • 好的,很抱歉这个令人困惑的问题。我实际上正在做一个自我机器人,它在不和谐的屏幕上共享它,但是当您单击“共享屏幕按钮”时会出现一个弹出窗口,并且 puppeteer 无法处理它,所以如果没有“--use”就不可能做到这一点-fake-ui-for-media-stream' 参数,当使用 Xvfb 启动脚本时,它不做任何事情。但是使用“--use-fake-device-for-media-stream”,它工作得非常好,但仅适用于测试视频,我想将 Xvfb 显示设置为像测试视频一样工作。希望能给问题一些启示。
    【解决方案2】:

    Puppeteer 本质上是无头的(没有显示器),但您可以使用page.emulate()page.setViewport() 设置默认视口、像素比率等来模拟您正在测试的设备。

    【讨论】:

      猜你喜欢
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多