← Back to team overview

sikuli-driver team mailing list archive

[Bug 1332260] Re: [1.1.0-Beta1] click() fails on anything but Screen(0)

 

--- Can you point me to the commit on github
not only one commit, nearly every commit since this one
https://github.com/RaiMan/SikuliX-2014/commit/d5b48fd296d4ba63a5c8894d70f14fb5eb2f66f1
has something to do with the complete (again :-( revision of the features where the use of AWT Robot was involved.
- Screen.initScreens()
- RobotDesktop
- OverlayCapturePrompt
- ScreenUnion
The main design flaw was the idea, to always have the screen with (0,0) as Screen(0) and hence primary screen. 
Now I leave the screens in the order as they are reported by the underlying graphics system, which might lead to the case, where the primary screen (Mac: the screen having the menu bar, Windows: the screen having the desktop, Linux: I cannot check) now is Screen(n), where n > 0.
Mouse handling now is done using an unbound robot instance, which seems to work without the need to do any point translation.

There is one problem left: on Mac 10.9, the overlay capture prompt is
not shown on the primary screen in multi monitor situation.

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/1332260

Title:
  [1.1.0-Beta1] click() fails on anything but Screen(0)

Status in Sikuli:
  Fix Committed

Bug description:
  SikuliX Setup Build: 1.1.0-Beta1 2014-05-30-18

  My sikuli script is able to locate the button fine and highlight even
  highlights the correct button, however click fails

  Thinking that click was failing due to color change, I explicitly
  grabbed the location (coordinates) from the match and passed it to
  click but click still fails

  I have tried to put in wait(), set ClickDelay, used hover before
  clicking: nothing works.

  My script fails if it runs on anything but Screen(0)

  If I keep the screen I'm trying to click on on my primary display, the
  script executes just fine!

  The issue is that the script outputs all the correct coordinates as
  per Screen(1) but the click actually happens on Screen(0)!

  Here is what my code looks like:

  Settings.setShowActions(True)
  Settings.ActionLogs = True
  Settings.InfoLogs = True
  Settings.DebugLogs = True

  SCR1 = Screen(1)
  p1 = Pattern("1402973791825.png")
  p2 = Pattern("1402972955014.png")

  goOn = True

  while goOn:
      try:
          x1 = SCR1.find(p1.exact())
          print x1
          #hover(x1)
          goOn = False
      except FindFailed:
          x2 = SCR1.find(p2.exact())
          x2l = x2.getTarget()
          print x2l
          x2h = x2.hover()
          print x2h
          x2h = x2.hover()
          print x2h

          x2.highlight(5)
          # icon on hover becomes darker

          #sleep(100)
          x2c = x2.doubleClick()
          print x2c
          x2.highlight(5)
          x2.hover(p2)
          wait(0.5)
          Settings.ClickDelay = 0.3
          x2c = x2.click(p2)
          print x2c
          goOn = False
          x2c = x2.mouseDown(Button.LEFT)
          print x2c
          x2c = x2.mouseUp(Button.LEFT)
          print x2c

To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/1332260/+subscriptions


References