tebelorg / RPA-Python

Python package for doing RPA
Apache License 2.0
4.94k stars 667 forks source link

r.keyboard() for Windows not responding - some checks for visual automation #176

Closed priyalParab closed 3 years ago

priyalParab commented 4 years ago

Hi, apparently many have been facing issues with visual automation. The methods that do not require visual automation = true seem to be working fine. But a simple Ctrl+F does not respond back, I am attaching a snippet of the code on windows machine as run in Jupyter:

import rpa as r r.init(visual_automation=True) r.url('https://in.yahoo.com/') r.type('//*[@id="header-search-input"]', 'best search engine[enter]') r.keyboard('[Ctrl][F]') r.wait(10) r.snap('page', 'page.png')

rpa_python log:

START - automation started - Sun Sep 13 2020 17:31:26 GMT+0530 (India Standard Time)

LIVE MODE - type done to quit [RPA][STARTED] [RPA][0] - listening for inputs [RPA][1] - https://in.yahoo.com/ [RPA][1] - listening for inputs [RPA][2] - exist_result = exist('//[@id="header-search-input"]').toString() [RPA][2] - listening for inputs [RPA][3] - dump exist_result to rpa_python.txt [RPA][3] - listening for inputs [RPA][4] - type //[@id="header-search-input"] as best search engine[enter] [RPA][4] - listening for inputs [RPA][5] - keyboard [Ctrl][F]

alvarobasto commented 4 years ago

Hello!

Try r.keyboard('[ctrl]f')

priyalParab commented 4 years ago

I did try this as well, no luck. I ran it with debug True, these are the logs:

[RPA][STARTED] [RPA][0] - listening for inputs [RPA][1] - https://in.yahoo.com/ [RPA][1] - listening for inputs [RPA][2] - exist_result = exist('//[@id="header-search-input"]').toString() [RPA][2] - listening for inputs [RPA][3] - dump exist_result to rpa_python.txt [RPA][3] - listening for inputs [RPA][4] - type //[@id="header-search-input"] as best search engine[enter] [RPA][4] - listening for inputs [RPA][5] - keyboard [ctrl]f

kensoh commented 3 years ago

Hi RPA for Python users, ๐Ÿ…—๐Ÿ…๐Ÿ…Ÿ๐Ÿ…Ÿ๐Ÿ…จ โ‘กโ“ชโ‘กโ‘ !

It has been many months since I last worked on this personal side project. Just want to shout out that this project is very much alive, and I hope to look into the 30+ issues raised since July (and bug-fixes if required) soon when I get a moment again.

Below are details if you are interested, why I'm away past few months and why I believe my darkest days are over ๐Ÿ€๐Ÿคž๐Ÿป๐Ÿ™๐Ÿป


Since May last year, I've stopped all work to juggle with my mum's critical illness, taking care of my toddler, and doing housework chores like cleaning and cooking. TBH, my wife and I felt that taking care of a baby and giving her the best nutrition (nursing and home-cooked organic food) and care requires at least 1.5 full-time headcount. There is no life to speak of, other than trying to stay afloat with baby care needs, and keep finding alternative ways to treat my mum, where there're some wins.

Eg importing soy-based tube feeds from Netherlands / Germany / Australia --> after switching away from milk-based tube feeds for 2 weeks she stops requiring dialysis. She started requiring 3x a week dialysis for more than 3 months, after admitting to the hospital. Also, applying herbs like mashed garlic or diced onions to her feet somehow consistently improve her breathing and lung function. Have to keep trying alternative healing methods when her recovery keeps hitting plateau in hospital.

She has been discharged from the hospital a month ago and recovering at home, though very slowly. A longterm medication seems to be one of the contributing causes for her condition. After stopping it, there seems to be improvement to her breathing capacity. She is still bed-bound, but over the course of the year I hope she'll regain strength to move about, and hopefully lungs to recover sufficiently to not require oxygen tank support through a tracheal mask (a hole through her throat).


Since November, I've gone back to work at AI Singapore, a government-funded programme to accelerate AI in Singapore. I'm with Product Engineering team, focusing on RPA and TagUI (open-source RPA tool), which RPA for Python is a wrapper for. There are pretty interesting stuffs on TagUI 2021 roadmap. 2020 was the year which my family was going to move to the UK and work, after I receive its tier 1 exceptional tech talent visa. Then everything changed with the virus outbreak, and my mum's illness. The best thing that happened to me in 2020 was being able to go back to work at AI Singapore - I'm grateful.

I've just hired someone to help with housework, cooking and supporting my wife with baby care. I hope this new arrangement will allow me to deliver on my work at AI Singapore, and soon be able to reply countless friends' messages which circumstances leave me with no choice but go missing for months, and then look into the issues raised here!

Eg of the cost of best-in-class nutrition standard researched and set by wife. Baby just felt restless and broke her plate. Even Corelle's break-resistant plate breaks. Why not use plastic plate? Cuz plastic can leech toxins to the food on it. Why not use Silicon plate? Cuz there is no white silicon materials for plate. Why white? Cuz that helps to improve visibility of the food instead of contrasting against some pink colour or some other colours. I would be spending much time clearing up the mess of 70 over pieces of plate fragments, while baby gets nursed to calm down, if not for our newfound helper.

That's why I feel like my darkest days are over and now seeing glimpses of light at the end of the tunnel.


My vision for RPA for Python remains - I would like it to be the go-to Python package for RPA.

A best-in-class tool in Python users toolbox which you combine with other cool packages to build amazing stuffs.

afishpro commented 3 years ago

The difficulties will pass. Come on

kensoh commented 3 years ago

Hi @priyalParab here are some ideas where to check next -

  1. double check whether you already have OpenJDK 64-bit installed, this is needed for computer vision
  2. make sure to do a click visually on your Chrome window to make it in focus to receive keyboard shortcuts
  3. Inside your %APPDATA% folder (can be found by import os; print(os.environ['APPDATA'])) there is a tagui folder, check inside there src\tagui.sikuli the log files for error messages and share here
kensoh commented 3 years ago

Also, free feel to join Telegram group chat for TagUI community to post any questions - https://t.me/rpa_chat

PS - this RPA package is based on a forked version of TagUI open-source RPA tool