1

关于 facebook/php-webdriver 在非无头时成功下载文件,以及在无头时相同操作失败的帖子不少。我正在为这个库(facebook/php-webdriver)寻找一个成功的RemoteWebdriver无头下载实现。

以下文章表明该库尚不具备设置自定义命令(“Page.setDownloadBehavior”)的灵活性,这可能是成功的无头下载所需要的。但是我还没有看到 PHP 中可行的解决方案的示例。

https://github.com/facebook/php-webdriver/issues/605

有什么可行的解决方案吗?谢谢你。

4

1 回答 1

1

我的一位同事使用 Chrome/Chromium 浏览器发现了一个很好的解决方法:

我们用头撞墙了好几个星期,试图让 --headless 来处理下载。以下是我们所做的具体操作:

  1. 安装 Xvfb

    sudo apt-get install xvfb

  2. 启动屏幕会话
  3. 启动 Xvfb 进程以提供虚拟显示

    Xvfb :1 -screen 5 1024x768x8 &

  4. 在屏幕会话中将 DISPLAY 添加到环境中

    export DISPLAY=:1.5

  5. 启动 chromedriver(它将在其环境中显示 DISPLAY)

    chromedriver &

现在任何由 chromedriver 启动的 chromium-browser 进程都将继承 DISPLAY 并使用 Xvfb 虚拟显示。

于 2019-05-29T19:51:56.020 回答