【问题标题】:How to integrate Sikuli scripts into Selenium?如何将 Sikuli 脚本集成到 Selenium 中?
【发布时间】:2011-04-09 15:08:42
【问题描述】:

我广泛使用Selenium 进行集成测试。适用于所有正常的东西(HTML/AJAX),但当我尝试测试第三方 ActiveX、Java 小程序和 Flash 组件时就不行了。

我为此找到的解决方案是Sikuli。在本地工作得很好,但我怎样才能将它集成到 Selenium 中?

顺便说一句。如果这是相关的,对于 Selenium,我正在使用 Python API。

【问题讨论】:

    标签: unit-testing testing selenium integration-testing sikuli


    【解决方案1】:

    可以在 Selenium Grid 上提供 Sikuli 功能。它需要在每个节点和集线器上安装额外的库。

    查看此项目以了解更多信息

    https://github.com/sterodium/selenium-grid-extensions

    【讨论】:

      【解决方案2】:

      如果您想在 Selenium Grid 上远程运行 Sikuli 功能,那么您似乎必须以某种方式使用 Selenium Augmenter 来实现。这里没有一个答案显示远程网格(例如使用 SauceLabs)将如何获得 Sikuli 功能。也许 Selenium 项目还没有扩充 Augmenter 类来加载像 Sikuli 这样的外部库?

      因此,当我使用 Sikuli 时,我总是必须使用非远程、标准、本地、WebDriver 实例。

      【讨论】:

        【解决方案3】:

        您可以扩展 Selenium 服务器,使其能够执行 SIKULI 脚本(see this 了解如何从 Java 调用它们)。

        但是,您需要使用 Java 进行开发,因为 Selenium Server 是一个 Java 应用程序。

        【讨论】:

        • 好点,但(现在)通过其 Java API 调用 Sikuli 比通过 Java 运行 Sikuli 脚本更好。
        【解决方案4】:

        如果不需要使用自定义或特定的测试框架,一种选择是机器人框架 (RF)。它有一个 Selenium 库,并且有一个关于如何将 Sikuli 与 RF 一起使用的方法。考虑到这一点,您可以使用 RF 将两者结合在一起。此外,RF 内置了一些不错的测试自动化框架功能。

        robotframework.org

        http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html

        http://code.google.com/p/robotframework-seleniumlibrary

        【讨论】:

          【解决方案5】:

          请参阅 Selenium RC 文档的 Python 部分: http://seleniumhq.org/docs/05_selenium_rc.html#python

          您也许可以从 Jython 运行 Selenium 测试。在这种情况下,您可以简单地将 Selenium 脚本集成到您的 Sikuli 脚本中。

          在 Sikuli IDE 中尝试以下操作。您可能需要修改导入语句以指向 Selenium 项目中的特定文件。

          from selenium import selenium    # this will probably need tweaking...
          
          slm = selenium("localhost", 4444, "*firefox", "http://www.google.com/")
          slm.start()
          # etc...
          

          这家伙似乎已经成功地从 Jython 控制了 Selenium:http://adam.goucher.ca/?p=367

          我的结论:留在 Jython 并从那里控制 Selenium 可能是最容易的。您可以将这两个工具集成到一个脚本中。

          【讨论】:

          • 对我来说有趣的方向是将 Sikuli 集成到 Selenium 中,而不是其他方式。 Sikuli 没有像 RC 和 Grid 这样的工具。无论如何,从 Jython 理论上可以调用 sikuli-script。我在 Linux 上取得了一些成功,但在 Windows 和 OSX 上却是依赖地狱。无论哪种方式,非常好的建议,+1。虽然我认为,如果我什至建议将我们所有的 Selenium 基础架构迁移到 Jython,SysEng 家伙会私刑我;-P
          • 另一种选择是使用 Java,尽管这不是 OP 的首选路线。 Sikuli 有 Java API,Selenium 也有。因此,您可以在驱动 Selenium 的 Java 中将 Sikuli 作为 API 调用(而不是 Sikuli 脚本)调用。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-10
          • 2011-10-24
          • 2012-04-29
          • 1970-01-01
          • 2013-08-14
          • 2019-04-03
          • 1970-01-01
          相关资源
          最近更新 更多