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.79k stars 1.31k forks source link

elementIdSelected not working as expected with GeckoDriver #2372

Closed riain0 closed 4 years ago

riain0 commented 4 years ago

Describe the bug

Hi,

I'm running the following test using Nightwatch + Selenium + GeckoDriver:

When this is run I am expecting response.value.ELEMENT to be the element's ID and the result.value to be true. This is the case when run in Chrome, but the following error occurs in Firefox:

Error: Error while running "elementIdSelected" command: First argument passed to .elementIdSelected() should be a web element ID string. Received undefined. See https://nightwatchjs.org/api/elementIdSelected.html at processTicksAndRejections (internal/process/task_queues.js:93:5)

Sample test

sampleTest.js

```js // Please add the sample test here module.exports = { sampleTest: function(browser) { browser.element( "css selector", "input[autofocus]", function(response) { browser.elementIdSelected(response.value.ELEMENT, function( result ) { browser.assert.ok(result.value, "Radio button Mr is selected"); }); } ) } } ```

Run with command

$ nightwatch test/sampleTest.js -e firefox

Verbose output

debug.log

```txt Running command: element ('css selector', 'input[autofocus]', [Function]) Request POST /wd/hub/session/a616cf4f-49cf-1c4f-9d8e-b5a58df23377/element { using: 'css selector', value: 'input[autofocus]' } Response 200 POST /wd/hub/session/a616cf4f-49cf-1c4f-9d8e-b5a58df23377/element (10ms) { state: 'success', sessionId: null, value: { 'element-6066-11e4-a52e-4f735466cecf': '968f68d6-ecf0-9b4b-b867-5dadad82680a' }, status: 0 } → Completed command: element ('css selector', 'input[autofocus]', [Function]) (11ms) → Running command: elementIdSelected (, [Function]) → Completed command: elementIdSelected (, [Function]) (1ms) → Running [afterEach]: → Completed [afterEach]. FAILED: 1 errors and 6 passed (12.687s) Error: Error while running "elementIdSelected" command: First argument passed to .elementIdSelected() should be a web element ID string. Received undefined. See https://nightwatchjs.org/api/elementIdSelected.html at processTicksAndRejections (internal/process/task_queues.js:93:5) ```

Configuration

nightwatch.json

```js const seleniumServer = require("selenium-server"); const chromedriver = require("chromedriver"); const geckodriver = require("geckodriver"); const iedriver = require("iedriver"); const edgedriver = require("edgedriver"); module.exports = { src_folders: ["tests"], output_folder: "reports", custom_assertions_path: "", live_output: false, disable_colors: false, selenium: { start_process: true, server_path: seleniumServer.path, log_path: "", host: "localhost", port: 4444 }, test_settings: { default: { launch_url: "http://localhost:3000/", selenium_port: 4444, selenium_host: "localhost" }, chrome: { desiredCapabilities: { browserName: "chrome", javascriptEnabled: true, acceptSslCerts: true, chromeOptions: { w3c: false } }, selenium: { cli_args: { "webdriver.chrome.driver": chromedriver.path } } }, firefox: { desiredCapabilities: { browserName: "firefox", javascriptEnabled: true, marionette: true }, selenium: { cli_args: { "webdriver.gecko.driver": geckodriver.path } } }, ie: { desiredCapabilities: { browserName: "internet explorer", javascriptEnabled: true, acceptSslCerts: true }, selenium: { cli_args: { "webdriver.ie.driver": iedriver.path } } }, edge: { desiredCapabilities: { browserName: "MicrosoftEdge", javascriptEnabled: true, acceptSslCerts: true }, selenium: { cli_args: { "webdriver.edge.driver": edgedriver.path } } }, safari: { extends: "selenium", desiredCapabilities: { browserName: "safari" }, selenium: { cli_args: { "webdriver.safari.driver": "/usr/bin/safaridriver" } } } } }; ```

Your Environment

Executable Version
nightwatch --version 1.3.4
npm --version 6.12.0
yarn --version 1.19.1
node --version 12.13.0
Browser driver Version
NAME VERSION
chromedriver 80.0.1
geckodriver v0.26.0
selenium-server 3.141
OS Version
NAME VERSION
macOS High Sierra 10.13.6
riain0 commented 4 years ago

Related to #2343, caused due to what Geckodriver returns.