sikuli-driver team mailing list archive
-
sikuli-driver team
-
Mailing list archive
-
Message #51350
[Bug 1811361] Re: [1.1.4] Windows: app focus and close should work for more than one instance running of same some-name.exe
ok, the case is clear now.
Chrome is not a compound app, but a bunch of subprocesses.
With normal Chrome, the started exe will be the application pid and have
the browser window.
With portable Chrome, the started exe will not have the window, but one
of the subprocesses named chrome.exe.
To evaluate such complex constructs is far beyond the scope of SikuliX.
Conclusion: someApp.focus() will only work, if the app object created
with App("some.exe").open() will have a window associated after startup.
In such cases as yours, there is no associated window and hence it is
only possible to focus the app with a part of the window title, which in
turn allows to get the app object with the window-owning process, that
in turn is focusable and closeable.
--
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/1811361
Title:
[1.1.4] Windows: app focus and close should work for more than one
instance running of same some-name.exe
Status in Sikuli:
In Progress
Bug description:
-------------- problem
currently SikuliX only finds first in the row (based on tasklist)
fix will only be available towards end of February '19
--------------------------------------------------------------------
1.1.4-SNAPSHOT-2019-01-10_09:21/Windows10.0/Java8(64)1.8.0_191-b12
Windows 10 64bit
I used this script to open two portable chrome instances and then
tried to change the focus to them or close them with .focus() and
.close() method but nothing happens:
open_instances = {} # a dictionary to keep record of opened browsers
{name:app}
def browser(target, action = True ):
temp = r"C:\Users\Test\Desktop\Chromes\f" + str(target) + r"\f" + str(target) + r".exe"
if action: #for opening
open_instances["f"+str(target)] = App(temp)
open_instances["f"+str(target)].open(10)
else: # for closing
open_instances["f"+str(target)].close()
del open_instances["f"+str(target)]
wait(1)
def main():
for i in range(1,3): # trying to open the instances which works fine
browser(i)
wait(2)
for i in range(1,3): # trying to close same instances but it does not work. I even tried the .focus() but no success either
browser(i, False)
main()
To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/1811361/+subscriptions
References