nightwatch.js无法在无头模式下运行chrome

时间:2017-10-05 20:14:39

标签: node.js nightwatch.js google-chrome-headless

如果没有打开可见的浏览器窗口,我无法运行它。 我尝试了“无头”“ - 无头”参数

注意:我不使用Selenium。

根据此页面,自60版以来MacOSX支持无头模式。我正在运行版本61

https://developers.google.com/web/updates/2017/04/headless-chrome

这是我的配置:

"chrome" : { "desiredCapabilities": { "javascriptEnabled": true, "acceptSslCerts": true, "browserName": "chrome", "chromeOptions" : { "args" : ["--headless"], "binary": "google-chrome" } } },

3 个答案:

答案 0 :(得分:1)

您错过了 - disable-gpu

正如您提供的网址提到:

  

- disable-gpu \#暂时需要。

这意味着您目前需要使用无头模式,未来版本可能不需要它。

答案 1 :(得分:1)

如果您使用的是linux,请尝试使用它,它对我来说非常适合:

            "desiredCapabilities": {
            "browserName": "chrome",
            "javascriptEnabled": true,
            "acceptSslCerts": true,
            "chromeOptions": {
                "args": [
                    "headless", "disable-gpu"
                 ],
                 "binary": "/usr/bin/google-chrome"
              }
        }

如果您使用的是Mac,请替换二进制路径,例如/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome

答案 2 :(得分:0)

我最近在无头模式上遇到了一些问题。找不到元素。然后我调试并使用SSL认证URL找到所有失败的案例。然后我添加了一个选项acceptInsecureCerts,它最后工作。仅供参考。

nightwatch.json:

...
        "desiredCapabilities": {
          "browserName": "chrome",
          "acceptSslCerts": true,
          "acceptInsecureCerts": true,
          "chromeOptions" : {
            "args": [
              "headless",
              "no-sandbox",
              "disable-gpu",
              "ignore-certificate-errors"
            ],
            "binary" : "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
          }
        },