1

我在我的 Ubuntu 服务器 (16.04) 上安装了最新的 Google Chrome 57.0.2987.110。我正在使用树冠(这是 Selenium 的 F# 包装器)。我将最新的 chromedriver 放在与我的二进制文件相同的文件夹中,版本:2.28.455506(并且我设置了正确的驱动程序路径)。

我用--headless参数开始 chrome,如下所示:

  let chromeOpts = ChromeOptions ()
  chromeOpts.AddArgument "--headless"
  chromeOpts.AddArgument "--disable-gpu"
  chromeOpts.AddArgument "start-maximized"

  start <| ChromeWithOptions chromeOpts

一旦开始,我就会收到此错误:

[错误] 致命的未处理异常:System.InvalidOperationException:未知错误:无法从未知错误获取自动化扩展:找不到页面:chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html(会话信息:内容外壳 =)(驱动程序信息: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f),platform=Linux 4.4.0-64-generic x86_64) at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (OpenQA.Selenium.Remote.Response errorResponse) [0x000d5] in <2096f357ed27440a8e98c8a8dd645cdd>: 0 在 OpenQA.Selenium.Remote.RemoteWebDriver.Execute (System.String driverCommandToExecute, System.Collections.Generic.Dictionary`2[TKey,TValue] 参数) [0x00046] in <2096f357ed27440a8e98c8a8dd645cdd>:0 在 OpenQA.Selenium.Remote.RemoteWebDriver .InternalExecute (System.String driverCommandToExecute, System.Collections.Generic.Dictionary 2[TKey,TValue] 参数) [0x00000] in <2096f357ed27440a8e98c8a8dd645cdd>:0 at OpenQA.Selenium.Remote.RemoteWindow.set_Size (System.Drawing.Size 值) [ 0x00067] in <2096f357ed27440a8e98c8a8dd645cdd>:0 at canopy.core.pin (canopy.types+direction 方向) [0x0002f] in <58c4b5b9d8107025a7450383b9b5c458>:0 at canopy.core.start (canopy.0050cBrowser] inMode bStart (canopy.005c+Browser]) 58c4b5b9d8107025a7450383b9b5c458>:0pin (canopy.types+direction direction) [0x0002f] in <58c4b5b9d8107025a7450383b9b5c458>:0 at canopy.core.start (canopy.types+BrowserStartMode b) [0x0050c] in <58c4b5b9d8107025a7450383b9b5c458>:0pin (canopy.types+direction direction) [0x0002f] in <58c4b5b9d8107025a7450383b9b5c458>:0 at canopy.core.start (canopy.types+BrowserStartMode b) [0x0050c] in <58c4b5b9d8107025a7450383b9b5c458>:0

似乎无法设置窗口大小。启动无头 Chrome 的正确方法是什么?我在某处读到最新版本具有无头功能。由于我使用的是最新版本的 Google Chrome 和 chromedriver,我认为这不应该是版本不匹配。

它在具有相同版本 chromedrive 的本地 Windows 10 机器上也可以正常工作(仅适用于 Windows)。

4

2 回答 2

1

使用命令运行(并且没有无头参数):

DISPLAY=:1 xvfb-run mono myapp.exe

似乎工作。我认为这解决了我的问题。我把它留在这里,让其他人寻找一种方式来运行无头 chrome 并遇到同样的问题。

该解决方案来自:http ://coderscoffeehouse.com/tech/2017/01/17/headless-front-end-testing-on-linux-using-fsharp.html

于 2017-03-24T15:13:53.133 回答
1

关于这个主题有一个开放的 Chromium问题。它指出:

Headless 模式目前不支持扩展,我们是否可以轻松支持它们尚不清楚——尽管我们正在做一些初步的可行性分析。

正如@mateuszlewko 所建议的那样,X 虚拟帧缓冲区 (XVFB) 可用作 Linux 解决方法。

于 2017-06-13T00:22:35.613 回答