陷入"启动selenium服务器"在运行样品守夜人测试时

时间:2017-10-23 14:33:16

标签: javascript java selenium nightwatch.js

有一些关于nightwatch.js的问题 - 我有一个现有的项目目录,我试图安装它。我已经关注了一篇教学文章,但是当我尝试运行测试时,它无法启动selenium服务器并且卡住了。如果有人能告诉我这是什么问题会很有帮助。我正在使用Windows 10,我正在尝试在Chrome中运行测试。

这是我的nightwatch.json配置文件 - 我是从头开始制作的,这就是为什么它不冗长:

{
  "src_folders" : ["tests"],
  "output_folder" : "reports",
  "custom_commands_path" : "",
  "custom_assertions_path" : "",
  "page_objects_path" : "",
  "globals_path" : "",

  "selenium" : {
    "start_process" : true,
    "server_path" : "lib/selenium/selenium-server-standalone-3.6.0.jar",
    "start-session" : true,
    "log_path" : "",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "lib/chromedriver",
      "webdriver.ie.driver" : ""
    }
  },

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



    }
  }
}
}

这是我在测试文件夹中唯一的测试,它看起来像这样:

module.exports = {   'Demo test Google' : function (browser) {
    browser
      .windowMaximize()
      .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();   } };

我重现的步骤:

  1. 将CMD和CD打开到我的project / lib / selenium文件夹中,然后运行
  2. java -jar selenium-server-standalone-3.6.0.jar     这启动了selenium服务器没有任何问题。  2.接下来,在一个单独的控制台中,我将CD放入我的项目根文件夹并运行命令行

    node nightwatch.js -t tests/sample.js
    

    然后说"启动selenium服务器......"但实际上并没有打开任何浏览器或运行任何测试。它保持这种状态,如果我想再试一次,我必须关闭命令控制台并重新打开它。

    我在这里做错了什么?

    先谢谢你们。

2 个答案:

答案 0 :(得分:0)

我可以建议在测试用例中添加标签,并尝试使用init()初始化浏览器:

module.exports = {
    '@tags': ['demo-test'],
    'Trying first demo test': (browser) => {
         browser
             .init()
             .url('http://www.google.com')
             .waitForElementVisible('body', 1000)
             ...(all the assertions you need)...
          };

除此之外,您不需要在单独的终端窗口中启动selenium服务器 - 夜间监视器本身应该是它。所以在终端中只需进入你的项目文件夹并输入nightwatch即可开始运行整个设置。

答案 1 :(得分:0)

我遇到了同样的问题并在正确检查nightwatch.json文件中的所有路径后修复了它。 确保您指定了chrome驱动程序和selenium的正确路径。 我注意到你忘了Chrome驱动程序的文件扩展名,试试

"webdriver.chrome.driver" : "lib/chromedriver.exe",