【问题标题】:Stuck in "Starting selenium server" when running sample nightwatch test运行示例 nightwatch 测试时卡在“正在启动 selenium 服务器”
【发布时间】:2017-10-23 14:33:15
【问题描述】:

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 文件夹,然后运行 ​​line

java -jar selenium-server-standalone-3.6.0.jar 这将启动 selenium 服务器,没有任何问题。 2. 接下来,在一个单独的控制台中,我 CD 进入我的项目根文件夹并运行命令行

node nightwatch.js -t tests/sample.js

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

我在这里做错了什么?

提前谢谢各位。

【问题讨论】:

    标签: javascript java selenium nightwatch.js


    【解决方案1】:

    我可以建议在您的测试用例中添加标签并尝试使用 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 应该由它自己来启动。因此,在终端中,只需 cd 进入您的项目文件夹并键入 nightwatch 即可开始运行整个设置。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-05
        • 2021-05-20
        • 2022-11-30
        • 1970-01-01
        相关资源
        最近更新 更多