Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
chris-jackson-actionqa opened this issue Apr 1, 2022 · 1 comment · Fixed by #3125
Assignees
Labels

Comments

@chris-jackson-actionqa
Copy link

Describe the bug

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

Sample test

sampleTest.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

<!-- Include the verbose output, if possible (run nightwatch with `--verbose` argument) -->

[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

//
// 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
Copy link
Author

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.

@vaibhavsingh97 vaibhavsingh97 self-assigned this Apr 1, 2022
@vaibhavsingh97 vaibhavsingh97 added this to To do in Nightwatch v2 Apr 1, 2022
@vaibhavsingh97 vaibhavsingh97 moved this from To do to In progress in Nightwatch v2 Apr 1, 2022
Nightwatch v2 automation moved this from In progress to Done Apr 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

Successfully merging a pull request may close this issue.

2 participants