-
-
Notifications
You must be signed in to change notification settings - Fork 8.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
Mouse Over goes in error with Marionette webdriver #2285
Comments
This is selenium related... the client bindings shouldn't be calling the "moveto" endpoint, rather the "actions" endpoint, well as soon as we get word from mozilla that they've implemented it in geckodriver. They are already tracking needing to implement actions, don't know which bug so can't link right now. |
Is there any idea of the timing? |
"when it's ready" :) |
Just have run into this issue as well. It would be great to have it working again :). |
So the deal is that "actions" is terribly underspecified. I have been trying to fix that, but it's very unclear to me what the semantics are supposed to be (e.g. when you move the mouse, should events be dispatched on all the elements along the pointers' path). Until that is clear it's not going to be possible to make this work the same way across multiple implementations. In the meantime there is a very experiemental branch supporting some actions using "whatever semantics marionette happens to implement, which are almost certainly not right" at [1], but it also needs a special branch of the API implementation at [2], and none of this will be compatible with the existing selenium client anyway. I suppose there is not going to be any agreement on what's even supposed to happen here until July at the earliest (although I am not even too confident about that, hopefully I will be proven wrong). [1] https://github.com/mozilla/geckodriver/tree/actions |
@jgraham, perhaps I can shed some light. We are attempting to emulate user input. As such, we should be storing the last known pointer position in the window, and emulating moving the mouse cursor to the new location. This may involve the viewport first. Since we are attempting to emulate a user, a series of intermediate "moving" events should be fired, though it is up to the implementor of the command to determine how many intermediate points, and what path should be followed. A simple implementation might evenly divide the distance to travel into (arbitrary number) 10 steps, and fire those intermediate move events as required, while moving in a straight line. A smart implementation might emulate moving along a curved path, with many different intermediate events. It is desirable not to "teleport" the cursor to the new location, since sometimes the required mouse events are being listened to by elements other than the one being moved to. And we're attempting to emulate what a user would do :) |
Trying to use the Safari webdriver i get this error : is it the same problem as firefox? |
I am having the issue posted directly above by @VitoAlbano in safari, is this issue fixed, @lukeis ? |
@VitoAlbano, @michaelpanicci: The Safari driver not implementing the actions API is a different issue altogether. Discussion of the Safari driver is not appropriate in the context of this issue. |
@jimevans do you know if actions API has been fixed in another issue? |
@michaelpanicci The Safari driver doesn't implement the actions API. Full stop. Given that Apple is expected to release a Safari driver in the next release of OS X/macOS, I would not expect the Selenium project's Safari driver implementation to be updated to support that API. |
Alright thank you! Sent from my iPhone On Jul 5, 2016, at 1:35 PM, jimevans <[email protected]mailto:[email protected]> wrote: @michaelpaniccihttps://github.com/michaelpanicci The Safari driver doesn't implement the actions API. Full stop. Given that Apple is expected to release a Safari driver in the next release of OS X/macOS, I would not expect the Selenium project's Safari driver implementation to be updated to support that API. � |
I am also experiencing this same error in Ubuntu using both the Click and Move to Element actions |
locking this issue to prevent more 'me too' comments. We will update this issue when a fix is available. To get notification of that, click this 'Subscribe' button to the right ----> |
tracking bug at mozilla: |
The tracking bug in geckodriver (the HTTP frontend) is mozilla/geckodriver#159. |
This is now implemented in geckodriver 0.15 and Selenium 3.x |
Meta -
OS: OSX 10.11.5
Selenium Version:
2.53.5
Browser:
Firefox
Browser Version:
47
Expected Behavior -
Creating a test with RobotFramework and Selenium2Library i'm using the keyword "Mouse Over" to emulate the mouse, so the page should react.
Actual Behavior -
When the Mouse Over Keyword is called i got this error : WebDriverException: Message: POST /session/5ffe9453-d8cc-6345-bdf1-fa4faef431f3/moveto did not match a known command.
On Chrome everything is working fine
Steps to reproduce -
##Marionette capabilities is added in an init keyword##
*RoboFramework test *
Open browser firefox https://www.google.co.uk/
Mouse Over id=lst-ib
Do you have any idea ? is this related to Selenium or i need to open the issue to Firefox/Marionette team?
Thanks
The text was updated successfully, but these errors were encountered: