51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1822|回复: 1
打印 上一主题 下一主题

Sikuli内导入其他sikuli脚本的几个方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-25 17:16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言
这是工作中整理的知识点,前期使用时,无法保证没有细节错误。目前做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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 07:51 , Processed in 0.067108 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表