tito / telenium

Automation for Kivy Application
MIT License
67 stars 23 forks source link

suggestion: implementation of click and hold behavior #26

Open magowiz opened 1 year ago

magowiz commented 1 year ago

To interact correctly with MDSwitch widget, I needed to have a click and hold behavior in order to change its state: click_on and wait_click methods from client are not working in this case, so I found a tricky workaround for this that I would like to share:

I managed to do this using wait_drag client method, putting as selector the Thumb and as target the same, specifying a proper duration and timeout, in this way I was able to reproduce desired behavior.

Here it is the code I wrote:

switch_locator = f'//MDSwitch[@name~="{provider_name}"]/Thumb[0]'
cli.wait_drag(switch_locator, switch_locator, duration=3, timeout=30)

Maybe it could be useful to implement a click_hold_on or a wait_click_hold method inside client that can use this "trick". What do you think?