"无法获得自动化扩展" Selenium(Ubuntu)无头铬的错误

时间:2017-03-24 14:21:43

标签: google-chrome selenium selenium-webdriver selenium-chromedriver canopy-web-testing

我已在我的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     (会话信息:内容shell =)     (驱动程序信息:chromedriver = 2.28.455506(18f6627e265f442aeec9b6661a49fe819aeeea1f),platform = Linux 4.4.0-64-generic x86_64)     在OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(OpenQA.Selenium.Remote.Response errorResponse)[0x000d5] in&lt; 2096f357ed27440a8e98c8a8dd645cdd&gt;:0     在OpenQA.Selenium.Remote.RemoteWebDriver.Execute(System.String driverCommandToExecute,System.Collections.Generic.Dictionary`2 [TKey,TValue]参数)[0x00046] in&lt; 2096f357ed27440a8e98c8a8dd645cdd&gt;:0     在OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(System.String driverCommandToExecute,System.Collections.Generic.Dictionary 2 [TKey,TValue]参数)[0x00000] in&lt; 2096f357ed27440a8e98c8a8dd645cdd&gt;:0     在OpenQA.Selenium.Remote.RemoteWindow.set_Size(System.Drawing.Size value)[0x00067] in&lt; 2096f357ed27440a8e98c8a8dd645cdd&gt;:0     在canopy.core.pin(canopy.types +方向)[0x0002f] in&lt; 58c4b5b9d8107025a7450383b9b5c458&gt ;:0     at canopy.core.start(canopy.types + BrowserStartMode b)[0x0050c] in&lt; 58c4b5b9d8107025a7450383b9b5c458&gt;:0

似乎无法设置窗口大小。 是推出无头Chrome的正确方法吗?我读到某个地方,最新版本有无头功能。 由于我使用的是Google Chrome和chromedriver的最新版本,我认为它不应该是版本不匹配。

此外它在使用相同版本的chromedrive的ma本地Windows 10计算机上运行正常(仅适用于Windows)。

2 个答案:

答案 0 :(得分:1)

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

DISPLAY=:1 xvfb-run mono myapp.exe

似乎工作。我认为这解决了我的问题。 我把它放在这里寻找其他人寻找一种无头镀铬方式并遇到同样问题。

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

答案 1 :(得分:1)

这个主题有一个开放的Chromium issue。它声明:

  

无头模式目前不支持扩展,目前尚不清楚   我们是否能够轻松地支持他们 - 尽管我们正在做一些事情   初步可行性分析。

根据@mateuszlewko的建议,X Virtual Framebuffer(XVFB)可以用作Linux解决方法。