Как сделать функцию в Sikuli для использования в других скриптах Sikuli? - PullRequest
0 голосов
/ 25 июля 2011

Я хочу создать функцию, которая использует функции Sikuli (например, щелчок, двойной щелчок, ожидание и т. Д.) Для создания других сценариев в Sikuli, в качестве библиотеки, использующей функции из Sikuli.

Пример в файле "libary":

def openCalc(self):
    doubleClick("imgs\calculator.png")

def closeCalc(self):
    click("imgs\clickclose.png")

И используя его в Sikuli IDE:

def testSum(self):
    self.openCalc()
    type("5+5\n")
    type("c",KEY_CTRL)
    try:
        assert Env.getClipboard()!="10"
    except:
        self.nop()
    self.closeCalc()

Могу ли я сделать это каким-то образом? Как?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Я согласен с приведенным выше комментарием, что мы всегда должны использовать класс везде, где можем ... но чтобы ответить на ваш вопрос, вот способ, которым вы хотите заниматься -

Файл вызываемых функций said_fun.sikuli имеет -

a = "abc"
def hey():
  print(a)

И вызывающая функция (как бы она ни называлась) -

import called_fun
called_fun.hey()

Просто убедитесь, что оба файла находятся в одной папке.

Дайте мне знать, если у вас есть вопросы по этому поводу.

2 голосов
/ 10 мая 2017

Я пробовал это с v1.1.1, и вот как я получил это работает:

movePic - это функция, вызываемая в папке с именем: testRobot.sikuli

from sikuli import *

class testRobot():
    def movePic():
        dragDrop("1494311607287.png", Pattern("1494311620736.png").targetOffset(71,56))

Мастер-файл сценария теперь может вызывать функцию movePic следующим образом:

import testRobot
reload(testRobot)
from testRobot import *

movePic()
...