nightwatchjs / nightwatch

Integrated end-to-end testing framework written in Node.js and using W3C Webdriver API. Developed at @browserstack
https://nightwatchjs.org
MIT License
11.78k stars 1.31k forks source link

multiple command shells launching and covering browser when launching Chrome on Windows #3124

Closed chris-jackson-actionqa closed 2 years ago

chris-jackson-actionqa commented 2 years ago

Describe the bug

When I run a test, multiple command prompts for chrome.exe popup and cover the browser.

Sample test

sampleTest.js

```js // Please add the sample test here describe("home", () => { it("home page", (browser) => { browser.url("https://facebook.com"); browser.pause(); }); }); ```

Run with command

$ nightwatch test/sampleTest.js -e chrome

Verbose output

debug.log

```txt [home] Test Suite ────────────────────────────────── ⠋ Starting ChromeDriver on port 9515... Starting ChromeDriver with server_path=C:\Users\User\Documents\nwbar\node_modules\chromedriver\lib\chromedriver\chromedriver.exe... Request POST /session { desiredCapabilities: { browserName: 'chrome', 'goog:chromeOptions': { w3c: true, args: [] }, name: 'home' }, capabilities: { alwaysMatch: { browserName: 'chrome', 'goog:chromeOptions': { w3c: true, args: [] } } } ⠧ Starting ChromeDriver on port 9515... Response 200 POST /session (614ms) { value: { capabilities: { acceptInsecureCerts: false, browserName: 'chrome', browserVersion: '100.0.4896.60', chrome: { chromedriverVersion: '100.0.4896.60 (6a5d10861ce8de5fce22564658033b43cb7de047-refs/branch-heads/4896@{#875})', userDataDir: 'C:\\Users\\User\\AppData\\Local\\Temp\\scoped_dir18296_452927567' }, 'goog:chromeOptions': { debuggerAddress: 'localhost:62029' }, networkConnectionEnabled: false, pageLoadStrategy: 'normal', platformName: 'windows', proxy: {}, setWindowRect: true, strictFileInteractability: false, timeouts: { implicit: 0, pageLoad: 300000, script: 30000 }, unhandledPromptBehavior: 'dismiss and notify', 'webauthn:extension:credBlob': true, 'webauthn:extension:largeBlob': true, 'webauthn:virtualAuthenticators': true }, sessionId: '5d6c8f7677ce83cf1670d013c1707a9d' } ℹ Connected to ChromeDriver on port 9515 (671ms). Using: chrome (100.0.4896.60) on WINDOWS. Received session with ID: 5d6c8f7677ce83cf1670d013c1707a9d → Running [before]: → Completed [before]. Running home page: ─────────────────────────────────────────────────────────────────────────────────────────────────── → Running [beforeEach]: → Completed [beforeEach]. → Running command: url ('https://facebook.com') ⠋ Loading url: https://facebook.com Request POST /session/5d6c8f7677ce83cf1670d013c1707a9d/url ⠋ Loading url: https://facebook.com Response 200 POST /session/5d6c8f7677ce83cf1670d013c1707a9d/url (919ms) ℹ Loaded url https://facebook.com in 922ms → Completed command: url ('https://facebook.com') (924ms) → Running command: pause () Waiting... Press Ctrl+C to exit. ```

Configuration

nightwatch.json

```js // // Refer to the online docs for more details: // https://nightwatchjs.org/gettingstarted/configuration/ // // _ _ _ _ _ _ _ // | \ | |(_) | | | | | | | | // | \| | _ __ _ | |__ | |_ __ __ __ _ | |_ ___ | |__ // | . ` || | / _` || '_ \ | __|\ \ /\ / / / _` || __| / __|| '_ \ // | |\ || || (_| || | | || |_ \ V V / | (_| || |_ | (__ | | | | // \_| \_/|_| \__, ||_| |_| \__| \_/\_/ \__,_| \__| \___||_| |_| // __/ | // |___/ // module.exports = { // An array of folders (excluding subfolders) where your tests are located; // if this is not specified, the test source must be passed as the second argument to the test runner. src_folders: ["tests"], // See https://nightwatchjs.org/guide/working-with-page-objects/using-page-objects.html page_objects_path: ["node_modules/nightwatch/examples/pages/"], // See https://nightwatchjs.org/guide/extending-nightwatch/custom-commands.html custom_commands_path: ["node_modules/nightwatch/examples/custom-commands/"], // See https://nightwatchjs.org/guide/extending-nightwatch/custom-assertions.html custom_assertions_path: "", // See https://nightwatchjs.org/guide/extending-nightwatch/plugin-api.html plugins: [], // See https://nightwatchjs.org/guide/#external-globals globals_path: "", webdriver: {}, test_settings: { default: { disable_error_log: false, launch_url: "https://nightwatchjs.org", screenshots: { enabled: false, path: "screens", on_failure: true, }, desiredCapabilities: { browserName: "firefox", }, webdriver: { start_process: true, server_path: "", }, }, firefox: { desiredCapabilities: { browserName: "firefox", alwaysMatch: { acceptInsecureCerts: true, "moz:firefoxOptions": { args: [ // '-headless', // '-verbose' ], }, }, }, webdriver: { start_process: true, server_path: "", cli_args: [ // very verbose geckodriver logs // '-vv' ], }, }, chrome: { desiredCapabilities: { browserName: "chrome", "goog:chromeOptions": { // More info on Chromedriver: https://sites.google.com/a/chromium.org/chromedriver/ // // w3c:false tells Chromedriver to run using the legacy JSONWire protocol (not required in Chrome 78) w3c: true, args: [ //'--no-sandbox', //'--ignore-certificate-errors', //'--allow-insecure-localhost', //'--headless' ], }, }, webdriver: { start_process: true, server_path: "", cli_args: [ // --verbose ], }, }, edge: { desiredCapabilities: { browserName: "MicrosoftEdge", "ms:edgeOptions": { w3c: true, // More info on EdgeDriver: https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/capabilities-edge-options args: [ //'--headless' ], }, }, webdriver: { start_process: true, // Download msedgedriver from https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/ // and set the location below: server_path: "", cli_args: [ // --verbose ], }, }, ////////////////////////////////////////////////////////////////////////////////// // Configuration for when using cucumber-js (https://cucumber.io) | // | // It uses the bundled examples inside the nightwatch examples folder; feel free | // to adapt this to your own project needs | ////////////////////////////////////////////////////////////////////////////////// "cucumber-js": { src_folders: ["examples/cucumber-js/features/step_definitions"], test_runner: { // set cucumber as the runner type: "cucumber", // define cucumber specific options options: { //set the feature path feature_path: "node_modules/nightwatch/examples/cucumber-js/*/*.feature", // start the webdriver session automatically (enabled by default) // auto_start_session: true // use parallel execution in Cucumber // parallel: 2 // set number of workers to use (can also be defined in the cli as --parallel 2 }, }, }, ////////////////////////////////////////////////////////////////////////////////// // Configuration for when using the browserstack.com cloud service | // | // Please set the username and access key by setting the environment variables: | // - BROWSERSTACK_USER | // - BROWSERSTACK_KEY | // .env files are supported | ////////////////////////////////////////////////////////////////////////////////// browserstack: { selenium: { host: "hub-cloud.browserstack.com", port: 443, }, // More info on configuring capabilities can be found on: // https://www.browserstack.com/automate/capabilities?tag=selenium-4 desiredCapabilities: { "bstack:options": { userName: "${BROWSERSTACK_USER}", accessKey: "${BROWSERSTACK_KEY}", }, }, disable_error_log: true, webdriver: { timeout_options: { timeout: 15000, retry_attempts: 3, }, keep_alive: true, start_process: false, }, }, "browserstack.local": { extends: "browserstack", desiredCapabilities: { "browserstack.local": true, }, }, "browserstack.chrome": { extends: "browserstack", desiredCapabilities: { browserName: "chrome", chromeOptions: { w3c: true, }, }, }, "browserstack.firefox": { extends: "browserstack", desiredCapabilities: { browserName: "firefox", }, }, "browserstack.ie": { extends: "browserstack", desiredCapabilities: { browserName: "internet explorer", browserVersion: "11.0", }, }, "browserstack.safari": { extends: "browserstack", desiredCapabilities: { browserName: "safari", }, }, "browserstack.local_chrome": { extends: "browserstack.local", desiredCapabilities: { browserName: "chrome", }, }, "browserstack.local_firefox": { extends: "browserstack.local", desiredCapabilities: { browserName: "firefox", }, }, ////////////////////////////////////////////////////////////////////////////////// // Configuration for when using the Selenium service, either locally or remote, | // like Selenium Grid | ////////////////////////////////////////////////////////////////////////////////// selenium_server: { // Selenium Server is running locally and is managed by Nightwatch // Install the NPM package @nightwatch/selenium-server or download the selenium server jar file from https://github.com/SeleniumHQ/selenium/releases/, e.g.: selenium-server-4.1.1.jar selenium: { start_process: true, port: 4444, server_path: "", // Leave empty if @nightwatch/selenium-server is installed command: "standalone", // Selenium 4 only cli_args: { //'webdriver.gecko.driver': '', //'webdriver.chrome.driver': '' }, }, webdriver: { start_process: false, default_path_prefix: "/wd/hub", }, }, "selenium.chrome": { extends: "selenium_server", desiredCapabilities: { browserName: "chrome", chromeOptions: { w3c: true, }, }, }, "selenium.firefox": { extends: "selenium_server", desiredCapabilities: { browserName: "firefox", "moz:firefoxOptions": { args: [ // '-headless', // '-verbose' ], }, }, }, }, }; ```

Your Environment

Executable Version
nightwatch --version 2.0.10
npm --version 6.14.15
yarn --version VERSION
node --version v14.18.3
Browser driver Version
chromedriver 100.0.4896.60

| OS | Version | | Windows 11 Pro | 21H2 | | NAME | VERSION |

chris-jackson-actionqa commented 2 years ago

I just went back in time and installed Nightwatch v1.7.3. I had to re-install chromedriver. Then it worked as expected without all the command shell popups.