Releases: tebelorg/RPA-Python
v1.10 - Fix run() on Windows
The run() function does not work correctly on Windows. The root cause is semi-colon is not appropriate as delimiter to combine with exit 0 command (for retrieving error output without triggering exception).
This fix uses ; for Linux / macOS and & as the delimiter in Windows environment. More details in #46.
v1.9 - Cleaner Usage and Error Handling
v1.8 - ask() with Chrome browser
#31 - ask() shows the question in terminal window. This is not intuitive if automation is running on Chrome web browser and a prompt appears in terminal window to ask for user input. Updated behaviour to show the prompt in Chrome web browser, if it's available.
#32 - if visual automation mode is not on and snap('page.png', 'screenshot.png') is used, there is no error message saying that init(visual_automation = True) is needed to use this. Updated to show error message instead of hanging and waiting for SikuliX response.
#24 - updated readme linking to RedMart online groceries example to automate re-adding all items to cart. To reschedule a delivery, user needs to cancel and create a new order by re-adding items manually.
v1.7 - Fix timeout() Bug
#30 - timeout() hangs if visual automation mode is not used
There is a bug in the timeout step in upstream TagUI project (aisingapore/TagUI#497). When timeout() is used with visual_automation = False, it hangs indefinitely. This release implements the bug-fix upstream.
v1.6 - Auto-flush Dead Processes
#18 - auto-flush dead TagUI processes, eg if Ctrl+C is used or forget to close()
It is possible that TagUI-related processes (main TagUI process, integration processes - SikuliX / Chrome, and Chrome browser) are not exited cleanly under certain conditions. For eg, if user Ctrl+C to kill a TagUI for Python script, or if user forgets to use close() to gracefully close off the running processes.
These dead processes have insignificant impact to TagUI for Python functionality. However they can cause unnecessary drain on battery and CPU cycles. Raising this issue to make a commit that runs a script that flush all TagUI-related processes.
This will be run within init() so that an accidental Ctrl+C or forgetting to close() allows immediate resumption of use by relaunching Jupyter notebook or Python interactive shell or Python script, and using init(). Placing within close() is meaningless for the scenarios where dead processes happen.
v1.5 - Cleaner Debug Log
#16 - cleaner debug log tagui_python.log when single quote ' is used
Upstream TagUI project has a limitation in live mode. It was a tradeoff to enable dynamic variables working for selectors and parameters in live mode. As a result, TagUI for Python sends the following string to TagUI when a single quote ' is used as parameter (non-identifier parameter).
'+"\'"+'
With the issue aisingapore/TagUI#465 raised by user, an improvement is made upstream, using a solution for a similar problem while developing TagUI for Python. Thus a commit can now be made here that replaces single quote ' for non-identifier parameters with the standard convention.
\'
This may seem like a small improvement, but it helps clarity in debug log tagui_python.log when t.debug(True) is set. Otherwise, whenever there is a ' it would result in some roundabout escape sequence above due to a limitation in upstream live mode.
v1.4 - Explicit UTF-8 Encoding
#14 - explicit Unicode UTF-8 encoding for both Python 2 and 3 for read and write operations
This helps potential issues when TagUI outputs UTF-8 encoded characters from extended ASCII set (eg webpage has special characters) but user's Python locale preferred encoding is not UTF-8, resulting in I/O error between TagUI for Python and TagUI. More details at issue #14.
v1.3 - OCR and ROI Capability
v1.2 - Fix download() and snap()
#4 - highlight auto-wait and timeout() in readme. There is automatic waiting for an element to appear before timeout happens, and error is returned that the element cannot be found. To change the default timeout of 10 seconds, use timeout() function.
#6 - on macOS with Python 3, there is no SSL certs support by default. This causes problem with downloading files from https:// domains. Adding an additional check to auto-install SSL certs. Before this change, download() simply fails. This change auto-setup SSL certs for users who downloaded Python 3 installation from Python website. For Anaconda or brew installations, this issue may still happen, will look out and make new code checks as needed.
#7 - upstream fix implemented for snapshots of web elements on Chrome. Fix improves performance and quality base on newer DevTools Protocol capabilities. Before this change, snap() captures screenshot of the whole webpage instead of only the element. As part of the issue, adding capability to autosync TagUI delta files when new TagUI for Python releases are installed. Before this change, t.setup() may be needed for existing installations to access new features.
v1.1 - Persistent Setup Location
In v1.0, setup folder is in the user temporary folder. After a few days, some operating systems may sporadically delete some files within the setup folder. This makes it unpredictable to know whether a downloaded version of TagUI has all the files intact to support TagUI for Python.
With this release, the setup folder now resides at %APPDATA%\tagui folder on Windows and at ~/.tagui folder on Linux / macOS. (~ is user home directory). More details at issue #3.