codeceptjs / codeceptjs/CodeceptJS

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

Open
#5,336 1 comment 0 reactions 0 assignees View on GitHub
stale
Dominant language
JavaScript
Stars
4.2k
Forks
757
Avg merge
2d 9h
Merged PRs (30d)
16

Description

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)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.