当前位置: 首页 > 知识库问答 >
问题:

无法从西库利 IDE 运行脚本

公孙英飙
2023-03-14

首先让我告诉你,我是新来的。我用Sikuli IDE开发了一些脚本,效果很好。

但是当我创建类并将测试作为方法添加到类中时..它不起作用。有人能告诉我我错过了什么吗?我的四库力剧本是这样的:

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")

共有2个答案

黎玺
2023-03-14

您需要调用类来使其执行。
此外,您所做的定义需要在执行之前被调用
如果您创建一个名为__init__的定义,则该定义将在调用类时执行。

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

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

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

# Run class 
Test()
阎令
2023-03-14

我不是专家,但我不确定一个类是否是你真正想要的…我质疑你是否真的想要一个类,因为看起来你并不打算让你的测试类具有不同的属性,只是将执行的不同代码片段。

如果您想将这些定义打包成一段易于调用的代码,您可以这样做-

定义完上面列出的所有函数后,您可以再定义一个包含所有这些函数的函数:

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构造类(特别是第二个答案)。

 类似资料:
  • 19.1 从IDE运行 您可以从IDE将Spring Boot应用作为一个普通的Java程序来运行,不过,首先需要导入您的项目。导入步骤将根据您的IDE和构建系统而有所不同。大多数IDE可以直接导入Maven项目,例如Eclipse用户可以从File菜单中选择Import…→Existing Maven Projects。 如果您无法将项目直接导入到IDE中,您可以使用构建插件生成IDE元数据。M

  • 我有一个VB.NET项目可执行文件。我使用Sikulix IDE启动可执行文件。 运行代码时,我会收到以下错误消息:

  • 当我试图登录本地postgres数据库并提交查询时,我的BASH脚本中的psql命令遇到了问题。我以以下方式使用该命令: 但是,我收到以下错误消息。 PSQL: FATAL:用户"postgres"的身份验证失败 在我将以下更改附加到 /var/lib/pgsql/data/pg_hba.conf后,从命令行运行非常好: 本地所有信任 托管所有127.0.0.1/32信任 另外,能否验证一下这一点

  • 我尝试从Swift代码中运行AppleScript命令,如下所示: 然后我尝试了两种方法: 或更老的方法: 这两个命令都不起作用,而且我尝试过的两个命令都是使用osascript-e“some command”工具从终端程序运行的。

  • 虽然 Selenium IDE 只能运行在火狐浏览器上,但是 Selenium IDE 开发的测试案例却可以运行在其他浏览器上。使用一个简单的命令行接口来调用 Selenium RC 服务器。这个话题在Selenium RC 运行 Selenese 测试部分章节有介绍。-htmlSuite 命令行选项是跟这个特定功能相关的。

  • 问题内容: 我正在尝试运行Python工作。我创建了以下文件夹: C:\ Users \ herod \ jenkins_ws \ workspace \ window_testing 并添加了脚本“ testing.py”。 该脚本非常简单: 但是从Jenkins运行它时出现以下错误(如果我从命令行运行它会起作用): 我究竟做错了什么 ? 这是我尝试过的: 在构建部分的作业配置中,我选择“执行p