Как интегрировать скрипты Sikuli в Selenium?
Я широко использую Selenium для тестирования интеграции. Работает отлично для всех нормальных вещей (HTML/AJAX), но не нужно, когда я пытаюсь протестировать сторонние ActiveX, Java-апплеты и Flash-компоненты.
Решение, которое я нашел для этого, Sikuli. Работает отлично на месте, но как я могу интегрировать это в Selenium?
кстати. если это необходимо, для Selenium я использую API Python.
Ответы
Ответ 1
См. раздел Python документации Selenium RC:
http://seleniumhq.org/docs/05_selenium_rc.html#python
Вы можете запускать тесты Selenium из Jython. В этом случае вы можете просто интегрировать сценарии Selenium в свои скрипты Sikuli.
Попробуйте следующее в IDE Sikuli. Возможно, вам придется изменить инструкции импорта, чтобы указать на определенные файлы в проекте Selenium.
from selenium import selenium # this will probably need tweaking...
slm = selenium("localhost", 4444, "*firefox", "http://www.google.com/")
slm.start()
# etc...
Этот парень, похоже, успешно справился с Selenium от Jython: http://adam.goucher.ca/?p=367
Мой вывод: вероятно, будет проще оставаться в Jython и контролировать Selenium оттуда. Вы можете интегрировать оба инструмента в один script.
Ответ 2
В Selenium Grid можно использовать возможности Sikuli. Для каждого модуля node и концентратора требуются дополнительные библиотеки.
Проверьте этот проект, чтобы узнать больше
https://github.com/sterodium/selenium-grid-extensions
Ответ 3
Я не думаю, что есть способ интегрировать оба. AFAIK Sikuli не имеет интерфейса командной строки или любого API.
FWIW, мы используем пакет iMacros Enterprise Bundle для нашего тестирования Flash/AJAX, он имеет аналогичные функции распознавания изображений как Sikuli. Так что это своего рода смесь Сикули и Селенина. Прост в использовании, но это коммерческое решение. Поэтому я не уверен, что это вариант для вас.
Ответ 4
Вы можете расширить Selenium Server, чтобы он мог выполнять скрипты SIKULI (видеть это о том, как их вызывать с Java).
Однако вам нужно будет развиваться на Java, поскольку Selenium Server является Java-приложением.
Ответ 5
Если вам не нужно использовать пользовательскую или конкретную тестовую среду, одним из вариантов является Robot Framework (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
Ответ 6
Если вы хотите удаленно запускать функции Sikuli на Selenium Grid, то кажется, что вам нужно будет сделать это с Selenium Augmenter. Ни один из ответов здесь не показывает, как удаленная Grid, например, с использованием SauceLabs, приобретет функциональность Sikuli. Возможно, проект Selenium еще не увеличил класс Augmenter для загрузки внешних библиотек, таких как Sikuli?
По этой причине, когда я использую Sikuli, мне всегда нужно использовать не удаленный, стандартный, локальный экземпляр WebDriver.