selenium-chromedriver - Nightwatch - 使用 chromedriver

标签 selenium-chromedriver nightwatch.js

所以我在 stack here 上看到了一个类似的问题,但它没有被接受的答案,也没有为我提供我需要的信息。

我正在尝试使用“chromedriver”,因为“selenium-webdriver”需要 FF 版本 <= 28。

到目前为止我所做的。

  • nightwatch.js 测试在 FF 中运行良好
  • 将 chromedriver ( npm install chromedriver -g ) 和 npm install chromedriver 下载到我的 nightwatch 项目目录
  • nightwatch/bin/nightwatch.json 并编辑了以下代码
     "selenium" : {
    "start_process" : false,
    "server_path" : "",
    "log_path" : "",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "/usr/local/bin/chromedriver", <= added this - is this the binary?
      "webdriver.ie.driver" : "",
      "webdriver.firefox.profile" : ""
    }},
    

  • 还尝试更新 selenium 的设置,使其具有 start_process=true 和 server_path
     "selenium" : {
        "start_process" : true,
        "server_path" : "../selenium-server-standalone-2.39.0.jar",
        "log_path" : "",
        "host" : "127.0.0.1",
        "port" : 4444,
        "cli_args" : {
          "webdriver.chrome.driver" : "/usr/local/bin/chromedriver",
          "webdriver.ie.driver" : "",
          "webdriver.firefox.profile" : ""
        }
      },
    

    不确定我是否指向正确的 chromedriver 文件/文件夹

    还编辑了测试设置
      "test_settings" : {
        "default" : {
          "launch_url" : "http://localhost",
          "selenium_host" : "127.0.0.1",
          "selenium_port" : 4444,
          "silent" : true,
          "disable_colors": false,
          "screenshots" : {
            "enabled" : false,
            "path" : ""
          },
          "desiredCapabilities" : {
            "browserName" : "chrome",   <= changed this from ff to chrome
            "javascriptEnabled" : true,
            "acceptSslCerts" : true
          }
        },
    

    如果我去运行测试(没有 -e <browser> )例如nightwatch -g <group> ,它在 FF 中启动良好并运行..

    如果我尝试指定 chrome 浏览器 ( -e chrome ) nightwatch -g <group> -e chrome 我会收到以下错误
    ERROR There was an error while starting the test runner:
    
    
    Error: Invalid testing environment specified: chrome
        at Object.CliRunner.parseTestSettings (/usr/local/lib/node_modules/nightwatch/lib/runner/cli/clirunner.js:354:15)
        at Object.CliRunner.init (/usr/local/lib/node_modules/nightwatch/lib/runner/cli/clirunner.js:31:8)
        at module.exports.runner.runner (/usr/local/lib/node_modules/nightwatch/lib/index.js:512:19)
        at /usr/local/lib/node_modules/nightwatch/bin/runner.js:9:16
        at module.exports.cli.cli (/usr/local/lib/node_modules/nightwatch/lib/index.js:504:7)
        at Object.<anonymous> (/usr/local/lib/node_modules/nightwatch/bin/runner.js:8:14)
        at Module._compile (module.js:456:26)
        at Object.Module._extensions..js (module.js:474:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
    

    我的问题是:
  • 我如何指向二进制文件(不确定它是哪个)
  • 我在 nightwatch.js 中的设置是否正确?如果我更改了 test_settings 'browserName = Chrome",它如何在 FF 中运行?
  • 我在这里遗漏了什么吗?

  • 提前致谢

    最佳答案

    首先你说

    I am trying to use 'chromedriver' because 'selenium-webdriver' requires a FF version <= 28.


    因为你用的是 selenium-server-standalone-2.39.0.jar (旧 jar) 请从这里下载新的 selenium-server-standalone-2.45.0.jar
    第二次从这里下载 chrome 驱动程序 Chromedriver基于您的环境
    第三次使用以下代码更新您的 nightwatch.json
    {
    "src_folders": [
        "tests"
    ],
    "selenium": {
        "start_process": false,
        "server_path": "bin/selenium-server-standalone-2.45.0.jar",
        "log_path": "",
        "host": "127.0.0.1",
        "port": 4444,
        "cli_args": {
            "webdriver.chrome.driver": "bin/chromedriver",
            "webdriver.ie.driver": ""
        }
    },
    "test_settings": {
        "default": {
            "launch_url": "http://127.0.0.1/",
            "selenium_port": 4444,
            "selenium_host": "localhost",
            "silent": true,
            "screenshots": {
                "enabled": false,
                "path": ""
            },
            "desiredCapabilities": {
                "browserName": "firefox",
                "javascriptEnabled": true,
                "acceptSslCerts": true
            }
        },
        "chrome": {
            "desiredCapabilities": {
                "browserName": "chrome",
                "javascriptEnabled": true,
                "acceptSslCerts": true
            }
        }
    }
    
    }
    第四次使用 nightwatch -g -e chrome 运行你的小组
    希望它能解决你的问题。

    关于selenium-chromedriver - Nightwatch - 使用 chromedriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30401135/

    相关文章:

    node.js - Nightwatch JS - 如何通过 Firefox headless 运行测试

    javascript - 使用 Istanbul 尔的 nightwatch.js 的代码覆盖率

    javascript - Nightwatch setValue 方法不起作用

    javascript - 等待 nightwatchjs 中的元素不再被禁用

    javascript - 断言在页面对象中不可用? - 无法读取未定义的属性 'ok'。

    c# - OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL timed out after 60 seconds

    google-chrome - Chome 61、ChromeDriver 2.32 单击移动设备模拟器的元素会引发 WebDriverException : unknown error: Element is not clickable at point

    python - 使用 Python Selenium 查找 span 标记的兄弟/父级

    java - 如何在 chrome 中使用 selenium 拖放 canvas web 元素

    java - 在java中获取操作系统和文件夹的相对路径