首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sikuli验证文本

使用Sikuli验证文本
EN

Stack Overflow用户
提问于 2013-12-04 05:27:45
回答 2查看 13.6K关注 0票数 3

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

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

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

我的代码如下

代码语言:javascript
复制
If exists(FirstName01):
   popup('passed')
else:
   popup('failed')

有没有其他方法来验证数据?

EN

回答 2

Stack Overflow用户

发布于 2013-12-04 19:36:57

与其使用exists()来验证文本(因为sikuli的集成开发环境中的OCR非常不可靠),如果有任何方法可以将您想要计算的文本放到剪贴板中,您可以使用Env.getClipboard()来更准确地计算它。

要将其放到剪贴板上,可以使用以下几种方法:

automatically

  • Use

  • dragDrop()突出显示文本

  • 可能会在文本框中使用tab键突出显示文本automatically

  • Use doubleClick()在文本上(取决于您尝试突出显示的内容,因此可能无法全部获得)

  • 可能是突出显示文本的最可靠方法--按tab键进入文本框或在文本框内单击()并选择all:

代码语言:javascript
复制
click(someImageNearTextBox).offset() #get your cursor inside the textbox
type("a",KeyModifier.CTRL) #select all to highlight the text

突出显示您的文本后,您可以按如下方式操作:

代码语言:javascript
复制
type("c",KeyModifier.CTRL) #copy selection to the clipboard
firstName = Env.getClipboard().strip() #assign contents of clipboard to a variable

然后,您可以使用它进行任何您想要的比较:

代码语言:javascript
复制
if firstName == "FirstName01":
    popup('passed')
else:
    popup('failed')

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

票数 13
EN

Stack Overflow用户

发布于 2015-01-16 19:01:56

好的,关于这个答案的第四版...抱歉的。今天是我在Sikuli的第二天,我开始使用Python。

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

类型(Key.HOME,KeyModifier.CTRL)

类型(Key.END,KeyModifier.CTRL | KeyModifier.SHIFT)

所以我遇到了一个问题。它可以手工操作,但在sikuli上不行。搜索我发现的原因:在Sikuli上(实际上是在Java上)有一个bug,但是有一个变通的方法。

keyDown(Key.SHIFT)在数字锁定的情况下不能在Win上工作--关闭;-)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20362028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档