我正在广泛使用Selenium进行集成测试。适用于所有正常的东西(HTML / AJAX),但是当我尝试测试第三方ActiveX,Java小程序和Flash组件时,不行。
我找到的解决方案是Sikuli。在本地工作得很好,但我怎样才能将它整合到Selenium中?
顺便说一句。如果那是相关的,对于Selenium我正在使用Python API。
答案 0 :(得分:6)
请参阅Selenium RC文档的Python部分: http://seleniumhq.org/docs/05_selenium_rc.html#python
您可以从Jython运行Selenium测试。在这种情况下,您可以简单地将Selenium脚本集成到您的Sikuli脚本中。
在Sikuli IDE中尝试以下操作。您可能需要修改import语句以指向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可能是最容易的。您可以将这两个工具集成到一个脚本中。
答案 1 :(得分:1)
可以在Selenium Grid上使用Sikuli功能。它需要在每个节点和集线器上安装额外的库。
检查此项目以了解更多信息
答案 2 :(得分:0)
我认为没有办法整合两者。 AFAIK Sikuli没有命令行界面或任何类型的API。
FWIW,我们使用iMacros Enterprise Bundle进行Flash / AJAX测试,它与Sikuli有类似的image recognition features。所以它是Sikuli和Seleninum的混合物。易于使用,但它是一种商业解决方案。所以我不确定这是否适合您。
答案 3 :(得分:0)
您可以扩展Selenium Server,以便它能够执行SIKULI脚本(see this如何从Java调用它们。)
但是,您需要使用Java进行开发,因为Selenium Server是一个Java应用程序。
答案 4 :(得分:0)
如果不需要使用自定义或特定的测试框架,一个选项是Robot Framework(RF)。它有一个Selenium库,还有如何使用Sikuli和RF的方法。考虑到这一点,您可以使用RF将两者结合在一起。 Plus RF内置了一些不错的测试自动化框架功能。
robotframework.org
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html
答案 5 :(得分:0)
如果你想在Selenium网格上远程运行Sikuli函数,那么你似乎必须以某种方式使用Selenium Augmenter。这里的答案都没有显示远程网格如何使用SauceLabs获取Sikuli功能。也许Selenium项目还没有增加Augmenter类来加载像Sikuli这样的外部库?
因此,当我使用Sikuli时,我总是必须使用非远程的标准本地WebDriver实例。