appium / appium-windows-driver

Appium's interface to WindowsAppDriver provided by Microsoft
Apache License 2.0
133 stars 35 forks source link

Added support for keyboard/mouse on Actions #162

Closed WhesRC closed 1 year ago

WhesRC commented 1 year ago

The Mouse and Keyboard interface are deprecated under latest appium version Actions done under those interfaces are now under the Actions umbrella but winappDriver had no support for it.

Redirected the actions to the right endpoints from the winAppDriver

Not sure If I mapped all the actions under the Mouse interface (I mainly needed support for actions under the drag&drop methods umbrella. Should be easy to map new endpoints if I missed something)

linux-foundation-easycla[bot] commented 1 year ago

CLA Missing ID CLA Not Signed

mykola-mokhnach commented 1 year ago

Just to reiterate on the topic:

WinAppDriver DOES support W3C actions, but limits available inout sources: https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/Actions.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/ActionsTouch.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/ActionsPen.cs

It also supports several shortcuts of legacy JWP touch interactions: https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/TouchClick.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/TouchDoubleClick.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/TouchDownMoveUp.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/TouchFlick.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/TouchLongClick.cs https://github.com/microsoft/WinAppDriver/blob/master/Tests/WebDriverAPI/TouchScroll.cs

So, here we need to:

WhesRC commented 1 year ago

Ola @mykola-mokhnach Could you have a fresh look over things, wanted to see which of the comments are still relevant. Let me know what else stick out to you. Regarding the documentation. All the actions that worked before still work with the changes, and I specified in comment the extra actions that now work with this. Not sure if a comment is the best way to have them documented tho, or if the format is right. Also, this offers support for "actions" that worked before with the old appium version, before W3C enforcement. I am not trying to implement full support to w3c actions, just trying to make sure that what worked before still has a way of working.

mykola-mokhnach commented 1 year ago

Regarding the documentation. All the actions that worked before still work with the changes, and I specified in comment the extra actions that now work with this. Not sure if a comment is the best way to have them documented tho, or if the format is right.

I would appreciate it if we had a markdown document in https://github.com/appium/appium-windows-driver/tree/master/docs, which describes all current limitations of actions transformation along with examples, e.g.

the following w3c actions are supported
single mouse click by coordinates:  w3c actions example
right mouse click on element by relative coordinates: w3c actions example

The second thing I would love to see is a set of unit tests that verifies that given w3c action chains are being properly transformed to the expected legacy command sets

WhesRC commented 1 year ago

I will create the markdown document and the unit tests, tho I will only have time to do that end of last week. Let me know if anything else from the rest of the things is not changed ok

hellozyemlya commented 1 year ago

@WhesRC any updates here?

mykola-mokhnach commented 1 year ago

Closed in favour of https://github.com/appium/appium-windows-driver/pull/163