RaiMan / SikuliX1

SikuliX version 2.0.0+ (2019+)
https://sikulix.github.io
MIT License
2.79k stars 357 forks source link

App class: open() fails on multi-user system #585

Open adriancostin6 opened 1 year ago

adriancostin6 commented 1 year ago

For my specific use-case, of running GUI automation tests using Sikuli on a datacenter with multiple users, the App class fails to open my application as there are multiple other processes with the same name on the system, so it bypasses the _osutil.open line. From having a closer look at the code, I can see the following behavior when trying to call App.open() with a full path to an executable on Windows. First, it checks if the path pointing to a valid location, then it extracts the application executable name from the path and runs a search on all the open processes to see if a process with that name already exists, and if so it uses that process instead of creating a new one. I believe that the user should have a choice of whether he/she wishes to opt in for this functionality, and it should not be default, as it breaks the use-case described above, where other processes with the same name are running, but the user wishes to spawn a new one regardless.