Chromedriver:无法执行二进制文件

时间:2015-08-23 16:01:10

标签: selenium selenium-webdriver selenium-chromedriver nightwatch.js

我开始使用Nighwatch进行网络测试,并尝试使用Chrome。

但是,当我开始测试时,它会立即崩溃并出现以下错误:

17:56:35.218 INFO - Executing: [new session: Capabilities [{acceptSslCerts=true, name=Sandbox, browserName=chrome, javascriptEnabled=true, platform=ANY}]]) 17:56:35.219 INFO - Creating a new session for Capabilities [{acceptSslCerts=true, name=Sandbox, browserName=chrome, javascriptEnabled=true, platform=ANY}] /Users/murdockcrc/repos/nightwatch/bin/chromedriver: /Users/murdockcrc/repos/nightwatch/bin/chromedriver: cannot execute binary file

我使用以下命令运行测试: ./bin/nightwatch --test hdv/tests/sandbox.js --config ./nightwatch.json

就我而言,这里的所有路径都是准确的,并指向正确的文件。

以下是我的夜班配置文件:

{
  "src_folders" : ["./hdv/tests"],
  "output_folder" : "./hdv/reports",
  "custom_commands_path" : "",
  "custom_assertions_path" : "",
  "globals_path" : "",
  "live_output" : true,
  "parallel_process_delay" : 10,
  "disable_colors": false,
  "test_workers" : false,

  "selenium" : {
    "start_process" : false,
    "server_path" : "",
    "log_path" : "",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "./bin/chromedriver",
      "webdriver.ie.driver" : "",
      "webdriver.firefox.profile" : ""
    }
  },

  "test_settings" : {
    "default" : {
      "launch_url" : "http://localhost:3000",
      "selenium_host" : "127.0.0.1",
      "selenium_port" : 4444,
      "silent" : true,
      "disable_colors": false,
      "screenshots" : {
        "enabled" : false,
        "path" : ""
      },
      "desiredCapabilities" : {
        "browserName" : "chrome",
        "javascriptEnabled" : true,
        "acceptSslCerts" : true
      }
    }
  }
}

最后,这是我试图运行的测试(正如你所看到的,只是一个占位符,看看它是否一直运行):

module.exports = {
  'Demo test Google' : function (browser) {
    browser
      .url('http://www.google.com')
      .waitForElementVisible('body', 1000)
      .setValue('input[type=text]', 'nightwatch')
      .waitForElementVisible('button[name=btnG]', 1000)
      .click('button[name=btnG]')
      .pause(1000)
      .assert.containsText('#main', 'Night Watch')
      .end();
  }
};

运行相同的测试,但使用firefox(通过更改nightwatch.json文件)确实可以正常运行。

如果您对此配置有什么问题并在Chrome上运行,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

作为一个完整性检查,您是否尝试过自己运行chromedriver(即运行“./bin/chromedriver”)?你应该得到一些看起来像

的输出

在端口9515上启动ChromeDriver(v2.9.248307)

您还应确保为您的机器配备了适当版本的chromedriver。查看ChromeDriver downloads页面。