我使用的是Python2.7,并且我已经从here安装了sikuli_cpython。
我有一个简单的脚本:
from sikuli.sikuli import *
symbol_image ='symbol.jpg'
t = find(symbol_image)
print t
click(t)当我运行它时,我得到以下错误消息:
File "C:\Projects\sikuli1.py", line 112, in <module>
click(t)
File "C:\Python27\lib\site-packages\sikuli-0.1-py2.7.egg\sikuli\sikuli.py", line 61, in click
loc = Pattern(target_string).getLocation()
File "C:\Python27\lib\site-packages\sikuli-0.1-py2.7.egg\sikuli\sikuli.py", line 139, in getLocation
t = self.getTarget()
File "C:\Python27\lib\site-packages\sikuli-0.1-py2.7.egg\sikuli\sikuli.py", line 135, in getTarget
return self._get_target_from_string(self.target_string)
File "C:\Python27\lib\site-packages\sikuli-0.1-py2.7.egg\sikuli\sikuli.py", line 148, in _get_target_from_string
target_file_loc = self._find_local_file(target_string)
File "C:\Python27\lib\site-packages\sikuli-0.1-py2.7.egg\sikuli\sikuli.py", line 162, in _find_local_file
poss_relative_path = os.path.join(os.getcwd(), target_string)
File "C:\Python27\lib\ntpath.py", line 73, in join
elif isabs(b):
File "C:\Python27\lib\ntpath.py", line 57, in isabs
s = splitdrive(s)[1]
File "C:\Python27\lib\ntpath.py", line 125, in splitdrive
if p[1:2] == ':':
TypeError: 'org.sikuli.api.ScreenRegion' object has no attribute '__getitem__'我知道在jython中使用了sikuli。我已经使用过sikuli ide,并且已经安装了jython 2.5.3。不过,我在使用jython easy_install sikuli时遇到了一些问题。
发布于 2014-11-12 00:02:24
我没有sikuli_cpython方面的专业知识。但是从sikuli ide (jython)的观点来看,对象symbol_image没有正确声明。find和click函数需要一个Pattern对象,就像您声明为字符串的方式一样。尝试:
symbol_image = Pattern('symbol.jpg')但您可能需要提供图像目录的完整路径,并使用.png扩展名。
发布于 2015-08-27 13:44:06
当Sikuli试图在您的脚本所在的本地文件夹中定位图像文件"symbol.jpg“时,会出现上述错误。我认为通过将符号图像放在与脚本相同的文件夹中,这个错误就会消失。
Sikuli可以更好地处理图像的png文件格式。您还可以将图像包路径设置为一个文件夹位置,脚本可以在该位置找到测试脚本中使用的图像。
import os
from org.sikuli.script import ImagePath
img_path = os.path.join(<Project-directory>, <images_folder>)
ImagePath.setBundlePath(img_path)https://stackoverflow.com/questions/26024812
复制相似问题