getValue
requires a callback method too so it's better to use assert.value
directly
Hi. I'm trying to run my nightwatch tests on headless firefox, but can't get it to work. My config includes
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled : true,
acceptSslCerts: true,
acceptInsecureCerts: true,
firefoxOptions: {
w3c: false,
headless: true,
args: [
'--enable-features=NetworkService,NetworkServiceInProcess',
'--ignore-certificate-errors',
'--disable-web-security',
'--window-size=1920,1080',
'--disable-extensions',
'--start-maximized',
'--disable-dev-shm-usage',
'disable-infobars',
'disable-notifications',
'--log-level=3',
'--headless'],
prefs: {
any ideas what I'm doing wrong? Thanks.
describe
thing. you can set unit_tests_mode:true
in your nightwatch config and you are ready go. Below is the simple example of it. For more information on unit test cases you can refer this. Hope it helps ๐const add = require('./add');
const assert = require('assert');
describe('Adding two numbers',function (){
it('adding two numbers',function(){
const sum = add(2,3);
assert.strictEqual(sum,5);
})
})
hey @gravityvi, my application renders in <canvas> so I cannot interact with it via DOM elements. So my idea was to create global object on window
, eg. e2e holding methods eg.e2e: {
doSmth()
}
that method under the hoods can call the backend endpoint or whatever. I'm trying to have tests looking like
client
.url("http://localhost:5000/")
.makePlayerDie('playerName')
.pause(2000) // wait for backend to perform
.checkIfPlayerIsDead('playerName')
.respawnPlayer('playerName')
.checkIfPlayerIsAlive('playerName')
.end()
this makePlayerDie
, checkIfPlayerIsDead
, respawnPlayer
, checkIfPlayerIsAlive
are methods available in
window.e2e global
but I don't know how to access this global from the nightwatch
browser.url("https://user:pass@hostname.com");
won't work for Safari.Safari in MacOS does not support basic authentication by passing the username and password in URL. Unfortunately, currently we do not have any workaround to solve this problem.
Hi.
I've just installed the latest Nightwatch (npm node package) version 1.7.7 and the way I run my tests is no longer working.
If I run my tests on a group basis:
npx nightwatch -c config/local.conf.js -e chrome --g carInsurance
it works ok.
However, if I run them on a tag basis:
npx nightwatch -c config/local.conf.js -e chrome --t carInsuranceTest
it runs all of my tests, not just the tests with the carInsuranceTest tag.
Has the way you run tests using tags changed in the latest Nightwatch version (my tests worked Ok in my previous nightwatch version, which was 0.9.21)?
Any help would be greatly appreciated. Thanks.
Hi.
Ok, so this appeared to be an issue with my nightwatch 1.7.7 setup, as it works locally with 1.7.6.
However, something strange is happening with 1.7.6 when I run my tests through Browserstack. If I run a single test, it works Ok. However, if I run the same test but using its tag, it falls.
darrenharley@wks63613 Functional % ./node_modules/.bin/nightwatch -c config/browserstack.conf.js -e chrome /Users/darrenharley/Documents/Git/uk-content-parkers/Tests/Functional/tests/carInsurance/PAR-4540.js
Using insecure HTTP connection on port 80. Consider using SSL by setting port to 443 in your Nightwatch configuration.
โน Connected to hub-cloud.browserstack.com on port 80 (5875ms).
Using: chrome (85.0.4183.83) on WINDOWS platform.
โ [Car Insurance/ PAR 4540] navigate to an example model insurance groups page (4.614s)
โ [Car Insurance/ PAR 4540] choose another car dropdowns removed (146ms)
โ [Car Insurance/ PAR 4540] insurance group link correctly added (915ms)
โ [Car Insurance/ PAR 4540] closing the browser (1.644s)
See more info, video, & screenshots on Browserstack:
https://automate.browserstack.com/builds/8f4a93d294271b7c0e7b8db31370f34dd7ba1e76/sessions/ebdae3948c7f16175783f9f814b7aadc21e91c02
OK. 4 total assertions passed (13.513s)
darrenharley@wks63613 Functional % ./node_modules/.bin/nightwatch -c config/browserstack.conf.js -e chrome --tag carInsurance Using insecure HTTP connection on port 80. Consider using SSL by setting port to 443 in your Nightwatch configuration.
โ ธ Connecting to hub-cloud.browserstack.com on port 80...
_________________________________________________
TEST FAILURE: 1 error during execution; 0 tests failed, 0 passed (788ms)
Error: Handshake failed: no matching key exchange algorithm
at addChunk (internal/streams/readable.js:309:12)
at readableAddChunk (internal/streams/readable.js:284:9)
at Socket.Readable.push (internal/streams/readable.js:223:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
Has anyone seen this before? Thanks.
Hi @gravityvi yeah, sure. Here it is...
browserstackConf = {
src_folders: [
'tests/'
],
output_folder: false,
globals_path: 'globals.js',
page_objects_path: 'config/page_objects',
test_workers: true,
detailed_output: false,
output: true,
disable_error_log: true,
disable_colors: false,
custom_commands_path: 'config/commands/',
selenium: {
start_process: false,
host: 'hub-cloud.browserstack.com',
port: 80
},
test_settings: {
default: {
launch_url: 'https://www.parkers.co.uk/',
desiredCapabilities: {
project: 'Parkers',
build: 'latestBuild',
'browserstack.selenium_version': '3.141.59',
'browserstack.user': 'xxxxxx',
'browserstack.key': 'xxxxxx',
'browserstack.local': false,
'browserstack.debug': true,
'excludeSwitches': ['disable-popup-blocking'],
},
},
chrome: {
desiredCapabilities: {
os: 'Windows',
os_version: '10',
browserName: 'Chrome',
browser_version: '85.0',
javascriptEnabled : true,
acceptSslCerts: true,
acceptInscureCerts: true,
chromeOptions : {
'excludeSwitches': ['disable-popup-blocking'],
args: [
'--ignore-certificate-errors',
'--disable-web-security',
'--window-size=1920,1080',
'--disable-extensions',
'--start-maximized',
'--disable-dev-shm-usage',
'disable-infobars',
'disable-popup-blocking',
'disable-notifications',
'--log-level=3'],
prefs: {
'profile.managed_default_content_settings.popups' : 1,
'profile.managed_default_content_settings.notifications' : 1
},
},
},
},
safari: {
desiredCapabilities: {
os: 'OS X',
os_version: 'Catalina',
browserName: 'Safari',
browser_version: '13.1'
},
},
edge: {
desiredCapabilities: {
os: 'Windows',
os_version: '10',
browserName: 'Edge',
browser_version: '18.0'
},
},
firefox: {
desiredCapabilities: {
os: 'OS X',
os_version: 'Catalina',
browserName: 'Firefox',
browser_version: '76'
},
},
android: {
desiredCapabilities: {
device: 'Google Pixel 2',
os_version: '8.0',
realMobile: 'true'
},
},
},
};
for (const settingsLoop in browserstackConf.test_settings) {
const config = browserstackConf.test_settings[settingsLoop];
config["selenium_host"] = browserstackConf.selenium.host;
config["selenium_port"] = browserstackConf.selenium.port;
config["desiredCapabilities"] = config["desiredCapabilities"] || {}
for (const capabilitiesLoop in browserstackConf.common_capabilities) {
config["desiredCapabilities"][capabilitiesLoop] = config["desiredCapabilities"][capabilitiesLoop] || browserstackConf.common_capabilities[capabilitiesLoop]
}
}
module.exports = browserstackConf
many thanks :)