【问题标题】:Using Sikuli to verify text使用 Sikuli 验证文本
【发布时间】:2013-12-20 03:39:11
【问题描述】:

我正在使用 Sikuli IDE 测试一个在文本框中返回数据的应用程序。 例如 我在名称字段中搜索我的测试值“FirstName01”,应用程序在各种文本框中返回名称和地址。

然后我使用 Sikuli 中的 exists() 函数验证数据。为此,我单击 IDE 左上角的存在函数并使用 + 工具选择我要验证的文本。在本例中,FirstName01 和 Location01。 然后,我将 MatchingPreview 选项卡上的 Similarity 设置为 .98(我发现如果我将其设置为 1.0,即使我得到正确的数据,Sikuli 也无法通过测试)。

如果我运行测试搜索 FirstName01,我会得到正确的结果,并且 Sikuli 不会抛出错误。我的问题是,如果我搜索并返回 FirstName02 以尝试生成错误条件,即使它正在寻找 FirstName01,exists 函数也会传递它。 Sikuli 似乎没有验证数据的最后一个字符。它似乎验证了其他字符,因为如果我搜索 FirstName21,exists 函数应该会抛出错误。有没有人遇到过这个问题,如果有,您是如何解决的?

我的代码在下面

If exists(FirstName01):
   popup('passed')
else:
   popup('failed')

还有其他方法可以验证数据吗?

【问题讨论】:

    标签: python sikuli


    【解决方案1】:

    与其使用exists() 来验证文本(因为sikuli 的IDE 中的OCR 非常不可靠),如果有任何方法可以获取您想要评估到剪贴板的文本,您可以使用Env.getClipboard()更准确地评估它。

    要将其放入剪贴板,您可以使用多种方法:

    1. dragDrop() 突出显示文本
    2. 也许在文本框内切换会自动为您突出显示文本
    3. 在文本上使用 doubleClick()(取决于您要突出显示的内容,因此可能无法全部了解)
    4. 也许是最可靠的高亮方式——tab 进入文本框或点击文本框内的 click() 并全选:

    .

    click(someImageNearTextBox).offset() #get your cursor inside the textbox
    type("a",KeyModifier.CTRL) #select all to highlight the text
    

    一旦你的文本被突出显示,你可以像这样继续:

    type("c",KeyModifier.CTRL) #copy selection to the clipboard
    firstName = Env.getClipboard().strip() #assign contents of clipboard to a variable
    

    然后你可以用它来进行任何你想要的比较:

    if firstName == "FirstName01":
        popup('passed')
    else:
        popup('failed')
    

    这种方法的缺点是,如果文本框中有任何特殊字符,它可能无法正确评估。

    【讨论】:

    • 我很高兴!您介意将其标记为已接受的答案吗? (我需要一点声望……)谢谢!
    【解决方案2】:

    好的,这个答案的第四版......对不起。今天是我在 Sikuli 的第二天,我开始使用 Python。

    我改编了 autoKarma 答案。在我的文本框(多行)上,CTRL+A 无法选择所有文本。我使用 CTRL+Home 转到文本框的开头,使用 CTRL+SHIFT+End 转到选择文本的末尾。

    类型(Key.HOME,KeyModifier.CTRL)

    type(Key.END, KeyModifier.CTRL | KeyModifier.SHIFT)

    所以我遇到了问题。它可以手工完成,但不适用于 sikuli。 搜索原因我发现:Sikuli(实际上是Java)有一个错误,但有一个解决方法。

    keyDown(Key.SHIFT) 在打开 Num-Lock 的情况下无法在 Win 上运行 -- 将其关闭 ;-)

    https://answers.launchpad.net/sikuli/+question/143874

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多