我是新来的 sikuli。我将它用于我的 java spring 独立应用程序的功能测试自动化。我在屏幕上的多个位置有相同的一组图像(徽标)。它们是根据应用程序数据动态生成的。在这种情况下,我如何在 UI 中找到并单击某些按钮/元素。示例:喜欢、分享、评论文本/图像将在 Facebook 页面中出现多次。在那我们如何点击特定的按钮。(facebook 只是一个例子)我想要我的应用程序的类似解决方案。
2 回答
我认为您要问的是-假设相同的图像或 UI 元素在同一页面上多次出现,我如何在一个位置指定这些元素中的一个,而在另一个位置指定相同的元素?
快速简便的方法是捕捉更大的图片,尽可能多地捕捉窗口,然后在单击操作后单击括号中的图像;这将打开一个窗口读取文件、匹配预览和目标偏移。单击目标偏移,使用鼠标滚轮放大,然后单击要单击的图片的确切点。
如果您使用不同的 click() 命令,则可以在捕获的图像上的多个位置单击,并且您可以为每个 click() 命令设置目标偏移量,而无需新图片。
仅使用这张图片,您就可以单击板上的每个方块,前提是您花时间为执行此操作的 64 个 click() 命令中的每一个设置偏移量。 http://files.chesscomfiles.com/images_users/tiny_mce/cigoL/Chessboard.png
更困难的解决方案是设置区域,并在这些区域中搜索匹配的图片,但是对于您要查找的内容,应该了解更多关于区域和设置的信息,请查看下面的链接。干杯!
根据您的 FB 示例,您可以使用它setROI()
来关注页面上的顶部帖子(想象一个覆盖新闻提要上完整帖子的矩形)从那里我会循环:
if exists(profile pic):
click(like button)
elif exists(profile pic 2): # If you are testing more than one user
click(like button)
else : type(Key.DOWN) #repeat as needed
将下一篇文章纳入 ROI 可能会很棘手,但WHEEL_DOWN
如果您可以调整系统上每个轮子点击时行进的线路,则使用可能会有所帮助。