Sikuli内导入其他sikuli脚本的几个方法
前言这是工作中整理的知识点,前期使用时,无法保证没有细节错误。目前做web自动化测试了,没有时间去审稿了,如有错误,请留言告知。
方法1:若导入(aa.sikuli)与被导入(testresultlogging.sikuli)的sikuli脚本在同一个目录下,则可使用如下方式导入。
from sikuli import *
之后用testresultlogging.function()方式,可在aa.sikuli内调用此脚本内的函数,类,方法,变量等。
若A目录下有脚本a.sikuli,文件夹B,C。B内有b.sikuli脚本,C内有脚本c.sikuli。
方法2:sikuli自带的函数addImportPath,实现目录导入,而不需要加入syspath。如需要导入a.sikuli脚本,使用addImportPath函数,导入此脚本所在的文件夹目录如
myScriptPath = A
addImportPath(myScriptPath)
import a
之后用a.function()方式,可以调用此脚本内的函数,类,方法,变量等。
此方法适用于,导入与被导入sikuli脚本不在同一目录下的情况(当然,在同一目录的sikuli脚本,互相调用也可以使用此方法,但是同目录下,用方法1更简便)。
备注:
1)尝试了在a.sikuli内,用from Bimport b的导入方式,之后用b.function()方式运行,sikuli IDE调试不可行。
2)尝试了import B. b的方式,之后用B. b.function()方式运行,sikuliIDE调试不可行。
3)只能再次addImportPath(”B”),才能:import b
方法3: a.sikuli代码中导入了b.sikuli,c.sikuli脚本。而c.sikuli在代码中,又需要导入b.sikuli。则:
在a.sikuli中:
addImportPath (B)
addImportPath (C)
import b
import c
在c.sikuli脚本中:
from sikuli import *
import b
若c.sikuli内还需要返回值给b.sikuli,则c.sikuli内还需要写:
from sikuli import *
方法4:addImportPath还可以这样用:当b. sikuli需要import c.sikuli时,可以如下写:
addImportPath (A)
addImportPath(C)
from sikuli import *
import c
方法:5:python内原有的功能实现,将c.sikuli脚本的文件夹,先append到sys.path内,验证了此方法下也不需要添加__init__.py文件。如下:
import sys
myScriptPath = "A\\c.sikuli"
sys.path.append(myScriptPath)
import c
之后用c.function()方式,可以调用此脚本内的函数,类,方法,变量等。
实践6:
在操作中发现,a引用b,b引用c。
需要在a内使用方法2,导入路径(addImportPath(myScriptPath)),在b内引用3时,需要使用方法1的语句和对c的单独导入,即需要如下两句:
fromsikuli import *
import c
支持分享
页:
[1]