codeceptjs / CodeceptJS

Supercharged End 2 End Testing Framework for NodeJS
http://codecept.io
MIT License
4.11k stars 723 forks source link

Element not reachable by keyboard #2373

Open clayrisser opened 4 years ago

clayrisser commented 4 years ago

What are you trying to achieve?

Fill a field in a shadow dom

What do you get instead?

I get the following error

Provide console output if related. Use --verbose mode for more details.

 I.seeElement({ shadow: ['.employer', 'input']})
    Emitted | step.before (I see element {"shadow":[".employer","input"]})
    Emitted | step.after (I see element {"shadow":[".employer","input"]})
    Emitted | step.start (I see element {"shadow":[".employer","input"]})
    I see element {"shadow":[".employer","input"]}
    › [Elements] Found 1 'shadow' elements
    Emitted | step.passed (I see element {"shadow":[".employer","input"]})
    Emitted | step.finish (I see element {"shadow":[".employer","input"]})
  OK   I.seeElement({ shadow: ['.employer', 'input']})
 I.fillField({ shadow: ['.employer', 'input']}, 'hi')
    Emitted | step.before (I fill field {"shadow":[".employer","input"]}, "hi…
    Emitted | step.after (I fill field {"shadow":[".employer","input"]}, "hi")
    Emitted | step.start (I fill field {"shadow":[".employer","input"]}, "hi")
    I fill field {"shadow":[".employer","input"]}, "hi"
    › [Elements] Found 1 'shadow' elements
    [1] <pause> Retrying... Attempt #2
    › [Elements] Found 1 'shadow' elements
    [1] <pause> Retrying... Attempt #3
    › [Elements] Found 1 'shadow' elements
    [1] <pause> Retrying... Attempt #4
    › [Elements] Found 1 'shadow' elements
    [1] <pause> Error | element not interactable: Element <input id="input-gu…
    Emitted | step.failed (I fill field {"shadow":[".employer","input"]}, "hi…
    Emitted | step.finish (I fill field {"shadow":[".employer","input"]}, "hi…
 FAIL  Element <input id="input-guid-1002" class="input-field" type="text"> is not reachable by keyboard

Details

exports.config = {
  tests: './steps/*.js',
  output: './output',
  helpers: {
    WebDriver: {
      url: 'http://example.com',
      browser: 'firefox',
      host: '127.0.0.1',
      port: 4444,
      restart: false,
      windowSize: '1920x1680'
    }
  },
  include: {
    I: './steps.js'
  },
  bootstrap: null,
  mocha: {},
  name: 'functional',
  plugins: {
    retryFailedStep: {
      enabled: true
    },
    screenshotOnFail: {
      enabled: true
    },
    wdio: {
      enabled: true,
      services: ['selenium-standalone']
    }
  }
}
clayrisser commented 4 years ago

This seems to only fail when using gecko. It works great when using chrome.

clayrisser commented 4 years ago

I'm in a catch 22 because of issue #2374 which fails on chrome.

romankulyk1 commented 4 years ago

were you able to find a solution to your issue? I have he same issue, only with geckodriver, chrome works perfectly.

clayrisser commented 4 years ago

I have not. I had to switch to using another tool called webdriverio because this wasn't fixed.

https://webdriver.io

Fraxinus1 commented 1 year ago

I am also facing the same issue when using geckodriver, Please anyone help on an alternative