簡體   English   中英

無法從Sikuli IDE運行腳本

[英]Unable to run script from Sikuli IDE

首先,讓我告訴您,我是Sikuli的新手。 我已經使用Sikuli IDE開發了一些腳本,並且運行良好。

但是當我創建類並將測試作為方法添加到它時..它不起作用。 有人可以讓我知道我在這里想念什么。 我的sikuli腳本是這樣的:

class Test:  
    def setUp(self):
        openApp("abc")
        wait(10)

    def tearDown(self):
       closeApp("abc")    

    def test1(self):
        click("1401168929740.png")
        time.sleep(1)
        type('o')
        time.sleep(3)
        click("1401169004890.png")
        wait("1401169047733.png")
        type("some text here")
        time.sleep(2)
        click("1401169154910.png")

        time.sleep(10)

        print("the outcome")

    def test2(self):
        wait("1401169193096.png")
        click("1401100914478.png")
        time.sleep(3)

        print("the outcome")


    def test3(self):
        type("m", KEY_ALT)
        type("cus1")
        type(Key.ENTER)
        time.sleep(2)
        type(Key.TAB)
        time.sleep(2)
        type("10.00")
        time.sleep(2)
        type(Key.TAB)
        time.sleep(2)
        type(Key.TAB)
        time.sleep(2)
        type(Key.ENTER)
        time.sleep(3)
        type(Key.ENTER)
        time.sleep(17)
        type(Key.ENTER)
        time.sleep(10)

    def test4(self):
        if exists("1401100952048.png"):
            popup("the outcome")

        else:
            popup("failure message")

我不是專家,但是我不確定您是否真的想要一門課程...我質疑您是否真的想要一門課程,因為它看起來並不意味着您的Test課程具有不同的屬性,只是將執行的不同代碼段。

如果您想將這些定義包裝到一個易於調用的代碼段中,則可以這樣操作:

定義完上面列出的所有功能之后,您可以定義一個包含所有這些功能的功能:

def setUp():
    openApp("abc")
    wait(10)

def tearDown():
   closeApp("abc")    

def test1():
    click("1401168929740.png")
    time.sleep(1)
    type('o')
    time.sleep(3)
    click("1401169004890.png")
    wait("1401169047733.png")
    type("some text here")
    time.sleep(2)
    click("1401169154910.png")

    time.sleep(10)

    print("the outcome")

def test2():
    wait("1401169193096.png")
    click("1401100914478.png")
    time.sleep(3)

    print("the outcome")


def test3():
    type("m", KEY_ALT)
    type("cus1")
    type(Key.ENTER)
    time.sleep(2)
    type(Key.TAB)
    time.sleep(2)
    type("10.00")
    time.sleep(2)
    type(Key.TAB)
    time.sleep(2)
    type(Key.TAB)
    time.sleep(2)
    type(Key.ENTER)
    time.sleep(3)
    type(Key.ENTER)
    time.sleep(17)
    type(Key.ENTER)
    time.sleep(10)

def test4():
    if exists("1401100952048.png"):
        popup("the outcome")

    else:
        popup("failure message")

def completeTest():
    setUp()
    tearDown()
    test1()
    test2()
    test3()
    test4()

###program begins here

completeTest()

如果您確實想要一門課程,那么看看您如何實現該課程可以幫助我們了解問題出在哪里。 如果您想將這些方法保留在類中,那么我認為調用它們的正確方法是:

Test.setUp()
Test.tearDown()
Test.test1()
Test.test2()
Test.test3()
Test.test4()

有一個關於如何構建Python類商量好了在這里 (特別是第二個答案)。

您需要調用該類以使其執行。
同樣,在執行之前,需要調用您所做的定義。
如果您定義了一個名為__init__的定義,則該定義將在調用該類時執行。

class Test():
    def __init__(self):
        self.setUp()
        self.tearDown()

    def setUp(self):
        print('Hello')

    def tearDown(self):
        print('World')

# Run class 
Test()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM