有一些关于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(); } };
我重现的步骤:
java -jar selenium-server-standalone-3.6.0.jar 这启动了selenium服务器没有任何问题。 2.接下来,在一个单独的控制台中,我将CD放入我的项目根文件夹并运行命令行
node nightwatch.js -t tests/sample.js
然后说"启动selenium服务器......"但实际上并没有打开任何浏览器或运行任何测试。它保持这种状态,如果我想再试一次,我必须关闭命令控制台并重新打开它。
我在这里做错了什么?
先谢谢你们。
答案 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",