没有Java的Nightwatch.js

Žel*_*pin 7 java nightwatch.js

是否可以在不安装Java的情况下使用Nightwatch.js?有官方的Selenium JavaScript绑定(WebDriverJS,selenium-webdriver).是否需要Java?

gke*_*dge 6

我正在迎合一个JavaScript社区,所以我试图在本地运行nightwatchjs,而不是自己引入Java.我确信如果您运行远程Selenium Server,该远程实例必须运行Java服务器以将命令传递给特定于远程浏览器的驱动程序.例如:ChromeDriver.

也就是说,我的印象是,可以将标准客户端直接连接到本地标准WebDriver(ChromeDriver),而无需使用Java selenium-server-standalone-2.xx.0.jar服务器.由于nightwatchJS是我尝试过的第一个客户端,所以很难找到一个可以工作的配置,因为所有文档都表明了Nate Stone在上面所说的内容.我看到的所有示例都表明需要规定selenium-server-standalone-2.xx.0.jar的位置:

selenium": {
  "start_process": true,
  "server_path": "lib/selenium-server-standalone-2.53.0.jar",
  "cli_args" : {
    "webdriver.chrome.driver" : "/Users/greg.kedge/bin/chromedriver"
  },
  "log_path": "integration/log" }
Run Code Online (Sandbox Code Playgroud)

他就是我所说的:如果你希望nightwatch在测试期间为你启动(和停止)服务器("start_process":true),那么运行Java服务器似乎是必要的.

但是,通过大量试用,如果您想在命令行上自行启动ChromeDriver,从而不断使用它,我可以在没有Java Selenium独立的情况下运行ChromeDriver.CAVEAT:到目前为止只在OS X上尝试过...所以,假设ChromeDriver在$ PATH中:

% chromedriver --url-base=/wd/hub
Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 9515
Only local connections are allowed.
Run Code Online (Sandbox Code Playgroud)

现在抓住该端口(9515)并更新你的nightwatch.json以指示你想要使用Chrome.我设置了默认设置,但您可以设置特定于Chrome的环境.从nightwatch.json完全删除了"硒"块,现在告诉nightwatch哪里能找到正在运行的服务器什么类型的服务浏览器:

  "test_settings": {
    "default": {
      "launch_url": "http://localhost:8888/",

      "selenium_host": "127.0.0.1",
      "selenium_port": "9515", 

      "silent": true,
      "firefox_profile": false,
      "screenshots": {
        "enabled": false,
        "path": ""
      },
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true,
        "__commentOut: chromeOptions" : {
              "args" : ["start-fullscreen"]
            }
      },
    }
  }
Run Code Online (Sandbox Code Playgroud)

使用它这种方式对我有用; 我可以在没有Java Selenium独立服务器的情况下运行nightwatch来驱动Chrome.同样,这是在OS X上使用始终运行的ChromeDriver .我无法弄清楚如何在不添加Java Selenium独立服务器的情况下让nightwatch管理启动/停止ChromeDriver.


Žel*_*pin 4

现在官方网站上有关于如何执行此操作的文档。

我在配置方面遇到了一些问题,因此我创建了一个包含工作代码的示例存储库:

https://github.com/zeljkofilipin/mediawiki-nightwatch