sikuli-driver team mailing list archive
-
sikuli-driver team
-
Mailing list archive
-
Message #56659
[Bug 1609079] Re: osx .observe(1) getsRuntimeError ( maximum recursion depth exceeded (Java StackOverflowError) )
** Changed in: sikuli
Status: New => Opinion
--
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/1609079
Title:
osx .observe(1) getsRuntimeError ( maximum recursion depth exceeded
(Java StackOverflowError) )
Status in Sikuli:
Opinion
Bug description:
This works on the same Mac OS 10.11.6 system with SikuliX 1.1.0.
Running the same program attached give a Java StackOverflowError on
the line "sample.observe(1) # observing for 1 seconds (script pauses here - Java Stack Overflow)
It happens the very first observation.....same JDK and java versions.
############################## Log ###############################
[log] App.focus: [0:Firefox]
[log] ( ⌘ ) TYPE "t"
2016-08-02 11\:47\:42, Typed "t", KeyModifier.CMD
[log] TYPE "nist.time.gov#ENTER."
2016-08-02 11\:47\:44, Typed "nist.time.gov" + Key.ENTER
2016-08-02 11\:47\:45, Found Right now
[log] highlight M[749,127 410x25]@S(0) for 2.0 secs
[log] highlight R[793,175 350x62]@S(0) for 2.0 secs
========= Starting Observation#0 ========
[error] script [ test3 ] stopped with error in line 132
[error] RuntimeError ( maximum recursion depth exceeded (Java StackOverflowError) )
############################# Program ###########################
import sys
import subprocess
import time
import shutil
setAutoWaitTimeout(5000)
Settings.ObserveScanRate = 2
def logit(msg):
lfile = open(id, "a")
msgall = time.strftime("%Y-%m-%d %H\:%M\:%S, ") + msg
print(msgall)
lfile.write(msgall)
lfile.close()
def snapit(msg):
bounds = getBounds()
pic = Screen(0).capture(bounds)
print("snapshot taken, + msg")
msg = msg.rstrip("\n")
sfile = path + "OSX10.11.5 " + time.strftime("%Y-%m-%d %H.%M.%S ") + msg + ".png"
shutil.move(pic,sfile)
def findit(pattern,desc):
found = False
for i in range(3):
if wait(pattern,2):
msg = "Found %s\n" % desc
logit(msg)
found = True
break
if (not found):
msg = "%s not found\n" % desc
logit(msg)
snapit(msg)
return False
return True
def typekeys(app,cmd,parm1):
defined = False
if (app == "Firefox"):
if (cmd == "Clear Recent History"):
defined = True
keys = "Key.BACKSPACE, KeyModifier.SHIFT|KeyModifier.CMD"
type(Key.BACKSPACE, KeyModifier.SHIFT|KeyModifier.CMD)
msg = "Typed %s\n" % keys
logit(msg)
time.sleep(1)
clearnow = Pattern("clearnow.png").similar(0.80)
desc = "Clear Now"
rc = clickit(clearnow, desc)
if (rc == False):
return False
time.sleep(2)
elif (cmd == "New Tab & URL"):
defined = True
keys = "\"t\", KeyModifier.CMD"
type("t", KeyModifier.CMD)
msg = "Typed %s\n" % keys
logit(msg)
time.sleep(1)
keys = "\"%s\" + Key.ENTER" % parm1
type(parm1 + Key.ENTER)
msg = "Typed %s\n" % keys
logit(msg)
time.sleep(1)
elif (cmd == "Close Tab"):
defined = True
keys = "\"w\", KeyModifier.CMD"
type("w", KeyModifier.CMD)
msg = "Typed %s\n" % keys
logit(msg)
time.sleep(1)
elif (cmd == "Select URL field"):
keys = "\"l\", KeyModifier.CMD"
type("l", KeyModifier.CMD)
msg = "Typed %s\n" % keys
logit(msg)
else:
pass
if (not defined):
msg = "No %s found\n" % cmd
logit(msg)
snapit(msg)
return False
return True
def timechanged(event):
print("Something changed in ", event.region)
num = 0
for ch in event.changes:
num += 1
ch.highlight() # highlight all changes
sleep(1)
print("Highlighted events=" + str(num))
num = 0
for ch in event.changes:
num += 1
ch.highlight() # turn off the highlights
print("Unhighlighted events=" + str(num))
Settings.isChanged = True
event.region.stopObserver()
####################################### Main ####################################
global id, path
# Create log file for msgs and path for snapshots
dir = "/users/joe/Documents/SikuliX/logs/"
lfile = "OSX10.11.5_" + time.strftime("%Y-%m-%d %Hh%Mm%Ss") + ".log"
id = dir + lfile
path = dir
lfile = open(id, "w")
lfile.close()
##############################################################################
setThrowException(False)
app = "Firefox"
myApp=switchApp(app)
cmd = "New Tab & URL"
parm1 = "nist.time.gov"
rc = typekeys(app,cmd,parm1)
if (not rc):
exit(1)
header = "1469738059083.png"
rc = findit(header,"Right now")
if (not rc):
exit(2)
headerloc = find(header)
headerloc.highlight(2)
hx = headerloc.getX()
hy = headerloc.getY()
timeloc = Region(hx + 44, hy + 48, 350, 62)
timeloc.highlight(2)
passed = 0
failed = 0
for i in range(10):
sample = timeloc
sample.onChange(100, timechanged)
Settings.isChanged = False
print("========= Starting Observation#" + str(i) + " ========")
sample.observe(1) # observing for 1 seconds (script pauses here - Java Stack Overflow
if Settings.isChanged: # check wether the handler was called (because there where changes)
passed += 1
else:
failed += 1
print("Passed=" + str(passed) + ",Failed=" + str(failed))
cmd = "Close Tab"
parm1 = None
rc = typekeys(app,cmd,parm1)
if (not rc):
exit(3)
exit(4)
################################ Log output #########################
To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/1609079/+subscriptions
References