← Back to team overview

sikuli-driver team mailing list archive

[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