我想使用Sikuli来自动化在Mac OS X和Windows上的浏览器中运行的GUI应用程序和Web应用程序。目前,我的目的是减少测试的时间,而将更多精力用于对那些目前没有较低级别自动化访问权限的团队进行繁琐而重复的任务的GUI自动化。

我认为我想为我可以在项目中重复使用的GUI应用程序和Web应用程序建立一个或多个屏幕截图库。对于不同的应用程序,或者对于Web应用程序,在不同的浏览器/平台组合中,我经常会运行相同的自动化步骤。

构建可重用的Sikuli屏幕截图库有哪些好的策略?一些想法:


我应该在Sikuli之外捕获屏幕截图,然后将这些图像切片/切成小块以拉出Sikuli中的特定界面元素吗?
我如何最好地跟踪类似GUI应用程序中等效界面元素的屏幕截图?
如何最好地跟踪与在不同浏览器或平台中看到的相同Web应用程序的屏幕截图?
我怎样才能最好地组织层次结构的元素,例如必须在菜单中做出选择1,选择2,然后选择3的菜单(但下一个选择仅在选择了上一个之后出现)?
屏幕截图是否应该另存为变量,以便能够更通用地引用它们?
我应该构造包含屏幕截图的Python列表还是字典?
我应该根据应用程序/平台将屏幕截图分为单独的Sikuli文件吗?


我假设所有这些我都可以像Python模块一样导入库,从文档中当然可以实现。

谢谢!

最佳答案

有一个名为“ Robust GUI Automation Library for Sikuli”的加载项。

即使您最终不使用该库,也可以通过查看问题的实现来学习一些非常好的经验教训。

一些建议:


我应该在Sikuli之外捕获屏幕截图,然后将这些图像切片/切成小块以拉出Sikuli中的特定界面元素吗?



比如何获取元素更重要的是这些元素的存储方式。我标准化了图形命名方式,即:
Button_OK.png而不是Sikuli的unpredictable_default_name.png
您可以在Sikuli脚本中“即时”添加图像库。将不同的浏览器和平台图形存储在不同的目录中。

myImagePath = "M:\\myImageLibrary\\"
addImagePath(myImagePath)




如何最好地跟踪等效界面的屏幕截图
跨类似GUI应用程序的元素?


命名约定!

\\firefox\\Button_OK.png
\\IE8\\Button_OK.png


您也可以使用Pattern的“相似性”来获得相同的图形,使其在IE和Firefox上都可以显示(但没有误报)。这可能需要反复试验。


我应该构造包含屏幕截图的Python列表还是字典?


这是一种非常好的做法,在某些情况下对我来说效果很好。但是有时,文件名比列表偏移量更能说明脚本功能。


我假设所有这些我都可以像Python模块一样导入库,从文档中当然可以实现。


是的,您可以import libraries

关于sikuli - 构建可重用的Sikuli屏幕截图库的策略是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9641327/

10-14 19:47