我是sikuli的新手。 我正在将它用于我的java spring独立应用程序的功能测试自动化。我在屏幕上的多个位置拥有相同的图像集(徽标)。它们是根据应用程序数据动态生成的。在这种情况下,我如何找到并单击UI中的某些按钮/元素。 示例:喜欢,分享,评论文本/图像将在Facebook页面中多次出现。在那里我们如何点击特定的按钮。(Facebook只是一个例子)我想要我的应用程序类似的解决方案。
答案 0 :(得分:0)
我认为您所问的是 - 在同一页面上多次出现相同图像或UI元素的情况下,如何在一个位置指定其中一个元素而在另一个位置指定相同元素?
快速简便的方法是捕获更大的图片,就像尽可能多的窗口一样,然后在点击操作后单击括号中的图像;这将打开一个窗口读取文件,匹配预览和目标偏移。单击目标偏移,使用鼠标滚轮放大,然后单击要单击的图片的确切点。
如果使用不同的click()命令,可以在捕获的图像上单击多个位置,并且可以为每个click()命令设置目标偏移,而无需新图片。
只有这一张图片,你可以点击棋盘上的每个方块,只要你花时间设置它所采取的64个click()命令中的每一个的偏移量。 http://files.chesscomfiles.com/images_users/tiny_mce/cigoL/Chessboard.png
更困难的解决方案是设置区域,并搜索这些区域以查找匹配的图片,但是对于您正在寻找的内容应该 - 有关区域和设置的更多信息,请查看下面的链接。干杯!
答案 1 :(得分:0)
根据您的FB示例,您可以使用setROI()
关注页面上的顶部帖子(想象一个覆盖新闻Feed上完整帖子的矩形),我会循环播放:
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
将下一篇文章纳入投资回报率可能会非常棘手,但如果您可以调整系统中每个轮子点击行走的行,则使用WHEEL_DOWN
可能会有所帮助。