-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Support for Native Browser Events #311
Comments
With the release of Chrome 63 we can now finally do this. We'll begin by adding From there we'll add new commands for file uploads, etc. We can also expose a low level command for talking directly to the debugger protocol to expose all of the other power and goodness that extends well beyond WebDriver. |
👏👍🎉
…Sent from my iPhone
On Oct 26, 2017, at 18:56, Brian Mann ***@***.***> wrote:
With the release of Chrome 63 we can now finally do this.
We'll begin by adding { native: true } to existing commands for users to opt into using the native variants of them.
From there we'll add new commands for file uploads, etc.
We can also expose a low level command for talking directly to the debugger protocol to expose all of the other power and goodness that extends well beyond WebDriver.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
good news, sounds exciting! 👏 |
Awesome! Is it devtools compatible? Do you plan to eventually deprecate the not-native commands? |
It is dev tools compatible. We will definitely not ever deprecate the non-native commands because they are actually more precise (as long as they work correctly). Non native can be issued synchronously and it's impossible to miss coordinates. Native events will always be async, so if we ask for them to fire at a specific coordinate, it will take take before it's actually issued. If there are state changes by then - you have a failure. We'll likely have a few native commands only like |
Does this mean we'll able to invoke and test |
Yes |
Is there a plan to integrate file uploading better with native events landing? There's a comment about it here cut I cannot seem to find any more information about it. |
My question is the same as @zth. Seems like this would be true, but I just want to confirm. There are medium articles talking about file uploads not being supported, even in February of this year. |
Just curious where things are at? I can't get a good reading on how close this functionality is to being ready or if it is already available |
@bkucera is starting on this work this week. We've gone through the game plan and will begin implementing this and all of the other work orthogonal to native events. |
@brian-mann will this change some of the known "permanent limitations" of Cypress? One example being something like performance testing, which with integration with Dev Tools could totally be within reach |
Hey guys, do we have some updates on this? I am curious to see when we will get this natively implemented. |
Check our roadmap for what we're currently working on. We're working on some larger features now, but this isn't one of them unfortunately. We suggest using https://github.com/dmtrKovalenko/cypress-real-events in the meantime. |
In what version cy.type('{tab}') is supported? @eventualbuddha |
For interacting with native elements while using cypress I have used a work around via which I was able to achieve it, by running tests in headed mode (or via cypress runner) and robotjs. |
An interim release which delivers tab support would probably be a good idea. Leaving such a critical feature which has been demanded for 6 years hanging while other things are added is non-ideal. |
And it's still actual. :( |
I recently heard about WebDriver BiDi aiming to become the future of cross-browser automation, and it's something Cypress might want to consider for future implementation of native events. As we know, CDP was not really made for testing, and we're lucky that it's also supported in Firefox. But if for example, we want to support other browsers like Safari, then CDP won't be enough. (Plus, I also think that native events reflect more reliably what a real user does, and I find more value in realistic testing, but with the super handy UI of Cypress.) I know that Cypress does not want to be Selenium, however they do not want to compete with other tools but rather collaborate with them. For more info please see: https://youtu.be/lpWwcWsyjQs?t=1310 |
click
IE11
without causing side effectscy.body().type()
:blur
focused element, send events tobody
.rightClick()
🆕possible:
click('left')
orclick('topleft')
not fixed:
type
force:true
skips actionability and uses simulated keys.type()
sequences:{moveToEnd}
,{moveToStart}
🆕.type()
sequences:{tab}
,{shift+tab}
🆕{moveToEnd}/{moveToStart}
execCommand('selectAll') + selection.modify('...')
browserFeatures
object. For ex)focus
.focus
behavior on certain text editable elementscontenteditable
{moveToEnd}
/{moveToStart}
{tab}
file uploads 🆕
cy.hover 🆕
scroll behavior
For IE:
Considerations / Research
select text command? 🆕
mouse state
for mouse actions that involve mouse state:For IE11 & firefox, see branch issue-311-ie-ff
The text was updated successfully, but these errors were encountered: