sikuli - 构建可重复使用的 Sikuli 屏幕截图库的策略是什么?

标签 sikuli

我想使用 Sikuli 来自动化在 Mac OS X 和 Windows 上的浏览​​器中运行的 GUI 应用程序和 Web 应用程序。我目前的目的不是为了测试,而是为了一个团队的乏味、重复性任务的 GUI 自动化,不幸的是,这个团队目前没有较低级别的自动化访问权限。

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

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

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

  • 我假设在所有这些中我可以像 Python 模块一样导入库,这在文档中似乎是可能的。

    谢谢!

    最佳答案

    有一个名为“Robust GUI Automation Library for Sikuli”的插件。

    即使您最终没有使用该库,也可以通过查看他们对问题的实现来学习一些非常好的类(class)。

    几点建议:

    should I capture screen shots outside of Sikuli, and then slice/dice those images to pull out specific interface elements within Sikuli?


  • 比如何获取元素更重要的是这些元素的存储方式。我标准化了我如何命名图形,即:
    Button_OK.png 而不是Sikuli的不可预测的默认名称.png
  • 您可以在 Sikuli 脚本中“即时”添加图像库。将不同的浏览器和平台图形存储在不同的目录中。
    myImagePath = "M:\\myImageLibrary\\"
    addImagePath(myImagePath)
    

  • how can I best keep track of screen shots for equivalent interface elements across similar GUI apps?



    命名约定!
    \\firefox\\Button_OK.png
    \\IE8\\Button_OK.png
    

    您也可以玩弄 Pattern 的“相似性”在 IE 和 Firefox 上获得相同的图形(但没有误报)。这可能需要一些试验和错误。

    should I construct Python lists or dictionaries that contain screen shots?



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

    I'm assuming in all of this that I could import the libraries like a Python module, which certainly seems possible from the documentation.



    是的,您可以 import libraries .

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

    相关文章:

    java - 如何使用带有java的sikuli点击在屏幕上多次出现的某些图像?

    while-loop - Sikuli 如何用于等待按钮直到显示然后单击它?

    testing - Sikuli 与 Selenium WebDriver 的集成

    java - 执行过程中如何查看sikuli日志?

    java - 无法加载 Skuli 库

    python - 如果 RDC 最小化,Sikuli 脚本不会运行

    scripting - 我如何在 Sikuli 中单击三次?

    java - 来自不同存储库的两个 Maven 依赖项

    python - 如何从python中的另一个类调用函数?

    firefox - 在 Firefox 的匿名配置文件上接受不受信任的证书