Skip to content
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

Closed
VitoAlbano opened this issue Jun 14, 2016 · 17 comments
Closed

Mouse Over goes in error with Marionette webdriver #2285

VitoAlbano opened this issue Jun 14, 2016 · 17 comments

Comments

@VitoAlbano
Copy link

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

@lukeis
Copy link
Member

lukeis commented Jun 14, 2016

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.

@VitoAlbano
Copy link
Author

Is there any idea of the timing?

@lukeis
Copy link
Member

lukeis commented Jun 16, 2016

"when it's ready" :)

@alexmorozov
Copy link

Just have run into this issue as well. It would be great to have it working again :).

@jgraham
Copy link

jgraham commented Jun 22, 2016

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
[2] https://github.com/jgraham/webdriver-rust/tree/actions

@shs96c
Copy link
Member

shs96c commented Jun 26, 2016

@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 :)

@VitoAlbano
Copy link
Author

Trying to use the Safari webdriver i get this error :
WebDriverException: Message: Unknown command: {"id":"9983y6oxcdbo","name":"mouseMoveTo","parameters":{"element":":wdc:1467114441429"}} (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2 milliseconds
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58'
System info: host: 'MacPro.local', ip: '10.243.50.156', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.5', java.version: '1.8.0_60'
Driver info: org.openqa.selenium.safari.SafariDriver
Capabilities [{browserName=safari, takesScreenshot=true, javascriptEnabled=true, version=9.1.1, cssSelectorsEnabled=true, platform=MAC, secureSsl=true}]
Session ID: null
Stacktrace:
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (NativeConstructorAccessorImpl.java:-2)
at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance (Constructor.java:422)
at org.openqa.selenium.remote.ErrorHandler.createThrowable (ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed (ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:678)
at org.openqa.selenium.remote.RemoteExecuteMethod.execute (RemoteExecuteMethod.java:35)
at org.openqa.selenium.remote.RemoteMouse.mouseMove (RemoteMouse.java:89)
at org.openqa.selenium.support.events.internal.EventFiringMouse.mouseMove (EventFiringMouse.java:58)
at org.openqa.selenium.remote.server.handler.interactions.MouseMoveToLocation.call (MouseMoveToLocation.java:59)
at org.openqa.selenium.remote.server.handler.interactions.MouseMoveToLocation.call (MouseMoveToLocation.java:1)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
at org.openqa.selenium.remote.server.DefaultSession$1.run (DefaultSession.java:176)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run (Thread.java:745)

is it the same problem as firefox?

@michaelpanicci
Copy link

I am having the issue posted directly above by @VitoAlbano in safari, is this issue fixed, @lukeis ?

@jimevans
Copy link
Member

jimevans commented Jul 5, 2016

@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.

@michaelpanicci
Copy link

@jimevans do you know if actions API has been fixed in another issue?

@jimevans
Copy link
Member

jimevans commented Jul 5, 2016

@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.

@michaelpanicci
Copy link

Alright thank you!

Sent from my iPhone

On Jul 5, 2016, at 1:35 PM, jimevans <notifications@github.commailto:notifications@github.com> 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.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com//issues/2285#issuecomment-230547103, or mute the threadhttps://github.com/notifications/unsubscribe/ATB80pLvfWSAPv8CVgrmNj9E-oBxpZjNks5qSpW-gaJpZM4I1bsf.

@robotgraves
Copy link

I am also experiencing this same error in Ubuntu using both the Click and Move to Element actions

@lukeis
Copy link
Member

lukeis commented Aug 4, 2016

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 ---->

@SeleniumHQ SeleniumHQ locked and limited conversation to collaborators Aug 4, 2016
@lukeis
Copy link
Member

lukeis commented Aug 4, 2016

tracking bug at mozilla:

https://bugzilla.mozilla.org/show_bug.cgi?id=1292178

@andreastt
Copy link
Member

The tracking bug in geckodriver (the HTTP frontend) is mozilla/geckodriver#159.

@jimevans
Copy link
Member

This is now implemented in geckodriver 0.15 and Selenium 3.x

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

9 participants