Pregunta

Quiero crear una función que use las características de Sikuli (como Click, DoubleClick, Wait, etc.) para crear otros scripts en Sikuli, como una liberación utilizando funciones de Sikuli.

Ejemplo en el archivo "Libary":

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

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

Y usarlo en 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()

¿Puedo hacer eso de alguna manera? ¿Cómo?

Gracias.

¿Fue útil?

Solución

Estoy de acuerdo con el comentario anterior en que siempre debemos usar la clase donde podamos ... pero para responder a su pregunta, aquí está la forma de lo que quiere hacer -

Llamado archivo de función llamado_fun.sikuli posee -

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

Y la función de llamar (cualquier nombre que tenga) es -

import called_fun
called_fun.hey()

Solo asegúrese de que ambos archivos estén en la misma carpeta.

Avísame si tienes preguntas sobre esto.

Otros consejos

Intenté esto con V1.1.1 y esta es la forma en que lo hice funcionar:

movePic es una función a llamar en una carpeta llamada: testrobot.sikuli

from sikuli import *

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

El archivo de script maestro ahora puede llamar a la función MovePic así:

import testRobot
reload(testRobot)
from testRobot import *

movePic()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top