无头Chrome量角器文件下载测试失败

Ant*_*C G 5 download angularjs-e2e protractor google-chrome-headless

我量角器测试有问题。它正在工作,但是现在(甚至认为没有任何变化)它没有。测试只是打开应用程序(Web应用程序),然后单击按钮下载图像。下载应立即开始。问题是,下载事件后的下一条指令将引发异常:失败:无法访问chrome。我正在使用最新的chrome和chrome驱动程序版本。

量角器的Capabilites部分如下所示:

capabilities: {
   browserName: 'chrome',
   loggingPrefs: { browser: 'ALL' },
   chromeOptions: {
      args: ['--headless', '--window-size=1240,780'],
   },
}
Run Code Online (Sandbox Code Playgroud)

我正在阅读有关使用DevTools以无头模式(Page.setDownloadBehavior)启用下载的信息,但到目前为止还算不上什么。

有人也有这个问题吗?任何线索如何解决它?

谢谢。

Bar*_*ney 4

可能还有另一种简单的方法来做到这一点,但这就是我在测试套件中所做的。我用了got库,但是,您可以使用任何库来发送 HTTP post 请求。

关于在无头 Chrome 中设置下载目录的讨论:https://bugs.chromium.org/p/chromium/issues/detail ?id=696481

let got = require('got');
let session = await browser.getSession();
let sessionId = session['id_'];
let params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': downloadDir }}
await got.post('http://localhost:4444/wd/hub/session/'+ sessionId + '/chromium/send_command', {body: JSON.stringify(params)})
Run Code Online (Sandbox Code Playgroud)

如果您尚未在量角器配置中禁用 ControlFlow,请将 ASync/Await 更改为.then