我正在为Gui自动化测试编写一个工具。通过指定一个文本字符串,我想得到它在当前屏幕上最近的文本框的坐标。
函数的签名应该如下所示:
Point GetNearestTextBoxPosition(string textOnLabel)
我已经设法获得了给定字符串textOnLabel
的坐标,所以我只需要实现这个函数:
Point GetNearestTextBoxPosition(Point textLabelPosition)
我想使用计算机视觉技术来实现这个功能,例如矩形检测。有人能告诉我如何使用OpenCV实现这一目标吗?
使用Hough变换可以很容易地检测矩形。
也就是说,你确定计算机视觉方法是合适的吗?
如果您的GUI是web,则可以使用Watir或Selenium等库在DOM级别进行驱动。如果您的GUI是本机应用程序,那么也有用于操作它们的控件。
假设您只有一个有问题的屏幕的位图图像,我建议使用直方图来识别屏幕上文本的大致位置,然后在这些区域内进行OCR来确定文本。如果你找到了与你正在搜索的字符串匹配的文本,那么你可以使用一个简单的水平和垂直梯度测试,从文本的边界来找到包含框(假设它有不同颜色的边框或背景色)。
如果没有看到示例输入,就很难比这更具体。