-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
Blur event is not fired reliably in some situations #1176
Comments
Hey there, I think I have a similar issue with focussing a field. I created a small demo if you check this repo out, run |
This might be fixed by #1939 , can anyone confirm the bug on 3.0.2? |
@DanielMSchmidt there is actually a problem with using the jquery The change event not firing is something specific to the framework and i'm not sure why it's failing |
@bkucera Here is what I noticed: If the Chrome window where the Cypress test gets executed is active, the event is correctly sent/received by my app, but if the window isn't the active one or if I click on the Chrome's devtools area before the test is ran, the blur event isn't received. Here is the test: cy.get('#view_0 [data-cy-path]')
.type('/{esc}')
.should('have.value', ''); My app is a React app that does this: private onKeyUp = (event: React.KeyboardEvent<HTMLElement>) => {
console.log('path keyup', event.keyCode);
if (event.keyCode === KEYS.Escape) {
event.nativeEvent.stopImmediatePropagation();
// lose focus
this.input.blur();
} else if (event.keyCode === KEYS.Enter) {
this.onSubmit();
}
} My input element also has an onBlur event which is never triggered if the Chrome window is not active while the tests are being run. Note that this doesn't happen in real life since the Chrome window must be active for the user to type something into an input. Hope this helps. |
This should fixed by PR #2982 |
The code for this is done in cypress-io/cypress#2982, but has yet to be released. |
Hi, i also face the same issue, that's,
when Cypress's browser is not the active browser then seems like at now, how can we user solve this issue . . . 😔 ? |
Released in |
can someone answer this please? I have a lot of logic based on blur event, and it is hard to work with tests because of that. |
@drumslave-git This issue is closed and has been resolved. If you are seeing a bug in Cypress, open a new issue with a reproducible example. If this is a question, we recommend questions relating to how to use Cypress be asked in our community chat. |
bug
Mac, Cypress 1.4.1, Electron and Chrome 63
I have investigated source of failures in Todomvc app some more and found interesting thing. Take a look at https://github.com/cypress-io/cypress-test-tiny/tree/blur-test (I put entire Ampersand TodoMVC there in the branch
blur-test
, you can just open ampersand/index.html to see and test).The test adds 3 todos, edits second, then checks if the local storage has been updated with new title text.
When running in Electron or Chrome browser with Devtools closed, the test passes. I can open DevTools AFTER the test and see the "enter" + "blur" events triggered and propagating into the app.
If I open DevTools but keep the FOCUS on the app iframe or on the command log and reload the tests, they still work. But if I click on the devtools, for example into the console tab and reload the tests, the "blur" event is not fired anymore and the test fails
Probably related to blur event is the run mode. It just fails 100%
If I could see console.log messages during this run (#448) it could shed some light
The text was updated successfully, but these errors were encountered: