codeceptjs / codeceptjs/CodeceptJS

Element is not found in Firefox even though it is definitely there

Aperta
#5,336 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
stale
Lingua principale
JavaScript
Stelle
4.2k
Fork
757
Merge medio
2g 9h
PR unite (30g)
16

Descrizione

I've been facing the following problem for about a week without any updates to CodeceptJS (or other dependencies) or the application code.

- test clicks on the account icon in the page header
- login form opens
- CodeceptJS should verify that a certain element exists
- it doesn't find it within 10 seconds even though it's definitely there; in open mode I can see it and inspect the DOM and it's there
- this happens 95% of time, very rarely it works
- it worked fine until about a week ago

This is the login method in the page object. The selector it doesn't find is the loginFormSelector.

```
login(email, password) {
this.openLoginForm()
this.fillLoginForm(email, password)
}

openLoginForm() {
I.waitForClickable(this.navigationLinks.responsiveLogin, 10)
I.click(this.navigationLinks.responsiveLogin)
I.waitForElement(this.loginFormSelector, 10) // selector is '#LoginForm'
}

fillLoginForm(email, password) {
I.fillField(this.customerData.loginCustomerEmail, email)
I.click(this.buttons.loginSubmit)
}
```

The HTML looks like this:
```



...

...
...



```

**What found out so far:**

- no iframe
- no shadow DOM
- if I print the DOM with grabHTML in headless mode, the element is there
- if I inspect the DOM in headed mode, the element is there
- if I pause the test after it enters the login page, I can use I.seeElement in the terminal and it find the element, yet the test fails upon continuation

**Does not help:**
- waitForVisible instead of waitForElement
- upping the timeout to 20
- adding a hard 3 second wait
- using an older version of Firefox (I tried 145, 144 and 142)
- running it locally or in the CI pipeline does not make a difference
- using a different selector

**Does help:**
- going to the login page by navigating to it with I.amOnPage() instead of clicking a link to get there
- using Chrome instead of Firefox

**CodeceptJS:** 3.7.5
**Webdriver:** 9.19.2
**Browser:** Firefox 145 (and 144 and 142)

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.