通过单击文本进行GUI自动化

时间:2013-10-10 04:41:42

标签: testing automation automated-tests sikuli gui-testing

有许多GUI自动化工具允许点击指定的图像(例如着名的Sikuli)。有没有办法点击指定的文字,而不是图像?这样工具将:

  1. 制作截图
  2. 识别文字
  3. 找到文字位置(不知何故)
  4. 将点击事件发送到此位置
  5. 使用这种方法编写测试会更容易(许多界面都有文本按钮,输入等),而不是为每个元素制作屏幕截图。

    我在Sikuli看到了一些OCR功能,但它对我不起作用(我尝试调用click('some-text-here')。

2 个答案:

答案 0 :(得分:1)

Sikuli内置的OCR功能非常多而且不稳定。所有(或至少大部分)相关问题都列在this BUG中。但是,几乎没有可能的解决方法,但是,这些解决方法并不总是适用。

  1. 如果文字已知,您可以截取文字截图,然后查找作为截图。例如,如果您知道此文本的确切字体,则可以在屏幕上自动生成此类文本,并将其用作模式以在其他位置找到它。

  2. 内置的基于tesseract的OCR,在字体较大,“较胖”和灰度(通常)时表现更好。因此,在尝试实际识别之前,您可能会进行一些背景图像处理。我使用Imagemakick调整大小并过滤图像以便更好地识别。它可以在后台作为命令行工具。例如:

    convert -filter spline -resize 100x -unsharp 10x20-type Grayscale

  3. 我知道这不会直接回答您的问题,但这些是您可能考虑采取的最终解决方案。

答案 1 :(得分:1)

我是Deskover公司的开发人员,目前我们正在开发满足您需求的应用程序UiPath Studio

我们提供各种技术的文本识别,具有100%的准确性,能够在屏幕,控件或整个窗口的区域中查找特定文本,还能够单击文本或控件。

您可以通过创建工作流程来按顺序执行不同的操作。

我们在Deskover是Sikuli项目的忠实粉丝。我们实际上在UiPath Studio中使用相同的图像识别引擎。

UiPath Studio是一个可视化工具,可以帮助您轻松创建工作流,但您也可以使用底层API并实现一个提取文本和点击的应用程序。 您可以找到有关UiPath库here的更多详细信息。