SlideShare a Scribd company logo
1 of 26
Практическое применение 
Sikuli Script в автоматизации 
тестирования 
Вадим Зубович 
DPI Solutions
Коротко о себе 
Вадим Зубович 
DPI Solutions / ISSoft 
Skype: dpi.zubovich 
E-mail: zubovich@dpisoft.com 
http://www.dpi.solutions/
Что такое Sikuli Script 
Sikuli-Script – библиотека Java, на которой 
базируется инструмент для автоматизации Sikuli-X, 
в основе которого лежит принцип распознавания 
образов и изображений.
Profit??? 
Когда полезен Sikuli-Script: 
● Автоматизация Flash 
● Автоматизация HTML-5 Canvas 
● Автоматизация Active-X приложений 
● Проверка наличия и корректности 
изображений в приложении 
● Здесь может быть ваш пример
В чем проблема 
Flash, Canvas, Active-X: 
Как его видим мы Как его видит WebDriver
Sikuli спешит на помощь
Ингредиенты 
Нам понадобятся: 
● Инструмент для снятия скриншотов. 
● JDK 
● IDE для работы с Java 
● Библиотека sikuli-script.jar
Подготовка 
Скачиваем Sikuli-X setup: 
www.sikuli.org/download.html
Подготовка 
Устанавливаем Sikuli-X:
Подготовка 
Добавляем библиотеку sikuli-script.jar в локальный 
репозиторий Maven: 
mvn install:install-file –Dfile=C:Sikuli- 
Scriptsikuli-script.jar - 
DgroupId=com.sikuli.script -DartifactId=sikuli 
–Dversion=1.0.1 -Dpackaging=jar
Подготовка 
Прописываем зависимость в .POM: 
<dependency> 
<groupId>com.sikuli.script</groupId> 
<artifactId>sikuli</artifactId> 
<version>1.0.1</version> 
</dependency>
Подготовка 
Не любите Maven? Добавьте в classpath!
Основные классы и методы 
App – используется для запуска приложения 
App.open(“<path to application>”); 
App application = App.open(“<path>”); 
application.focus();//переводит фокус на наше приложение 
application.window();//Возвращает объект Region, 
включающий только содержимое окна приложения
Основные классы и методы 
Screen – охватывает весь экран 
Screen scr = new Screen(); 
scr.click(“<image>”); 
scr.rightClick(“<image>”); 
scr.doubleClick(“<image>”); 
scr.dragDrop(“<source image>”,“<target image>”); 
scr.hover(“<image>”); 
scr.paste(“<image>”, “<text>”); 
scr.find(“<image>”);//возвращает объект Match 
scr.exists(“<image>”);//возвращает объект Match 
scr.wait(“<image>”, double milis);//возвращает объект 
Match
Основные классы и методы
Основные классы и методы 
Region – заданный регион на экране 
Region reg = scr.find(“<image>”); 
reg.click(“<image>”); 
reg.rightClick(“<image>”); 
reg.doubleClick(“<image>”); 
reg.dragDrop(“<source image>”,“<target image>”); 
reg.hover(“<image>”); 
reg.paste(“<image>”, “<text>”); 
scr.find(“<image>”);//возвращает объект Match 
scr.exists(“<image>”);//возвращает объект Match 
scr.wait(“<image>”, double milis);//возвращает объект 
Match
Основные классы и методы
Основные классы и методы 
Pattern – шаблон для нахождения картинки на экране 
Pattern pat = new Pattern(“<image>”); 
pat.exact();//будет искать точное совпадение 
pat.similar(float similarity);//будет искать совпадение с 
отклонением 
pat.targetOffset(int x, int y);//будет работать с 
регионом со смещением
Особенности архитектуры 
На базе Sikuli-Script можно строить привычный 
PageObject, но со ссылками на картинки вместо 
привычных для WebDriver локаторов.
Особенности архитектуры 
Хранить картинки удобнее всего в ресурсах, 
разложив их по папкам, соответствующим названиям 
страниц.
Sikuli Web Driver 
Sikuli Web Driver – расширение Web Driver, 
использующее возможности работы с изображенями, 
доступные в Sikuli
Sikuli Web Driver 
Подключаем зависимость Maven 
<dependency> 
<groupId>org.sikuli</groupId> 
<artifactId>sikuli-webdriver</artifactId> 
<version>1.0.1</version> 
</dependency> 
При этом подключаются org.sikuli.api, 
org.sikuli.core и org.sikuli.webdriver
Sikuli Web Driver 
Сама по себе библиотека org.sikuli.api не 
содержит методов для взаимодействия с 
найденными изображениями
Sikuli Web Driver 
Как искать элементы с использованием Sikuli Web 
Driver:
Sikuli + Selenide 
Используем Sikuli Web Driver вместе с Selenide
Спасибо за внимание 
Приятной Вам автоматизации 
Вадим Зубович 
DPI Solutions / ISSoft 
Skype: dpi.zubovich 
E-mail: zubovich@dpisoft.com 
http://www.dpi.solutions/

More Related Content

Viewers also liked

Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Maxim Shulga
 
Приключения белого ящика в стране покрытий
Приключения белого ящика в стране покрытийПриключения белого ящика в стране покрытий
Приключения белого ящика в стране покрытийSQALab
 
Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python? Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python? Mykhailo Poliarush
 
Подгурский Михаил - Обучение и самообучение | HappyDev'12
Подгурский Михаил - Обучение и самообучение  | HappyDev'12Подгурский Михаил - Обучение и самообучение  | HappyDev'12
Подгурский Михаил - Обучение и самообучение | HappyDev'12HappyDev
 
Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...
Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...
Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...HappyDev
 
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?HappyDev
 
Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...
Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...
Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...HappyDev
 
Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12
Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12
Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12HappyDev
 
Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12
Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12
Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12HappyDev
 
Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...
Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...
Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...HappyDev
 
Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12HappyDev
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предамSQALab
 
Процесс тестирования. Измерение и оценка
Процесс тестирования. Измерение и оценкаПроцесс тестирования. Измерение и оценка
Процесс тестирования. Измерение и оценкаSQALab
 
Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12HappyDev
 
Проверка влияния внешних событий на работу мобильного приложения
Проверка влияния внешних событий на работу мобильного приложенияПроверка влияния внешних событий на работу мобильного приложения
Проверка влияния внешних событий на работу мобильного приложенияSQALab
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiYandex
 
Аналитик в Agile (SEF-09)
Аналитик в Agile (SEF-09)Аналитик в Agile (SEF-09)
Аналитик в Agile (SEF-09)Andrey Bibichev
 
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...HappyDev
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...SQALab
 

Viewers also liked (19)

Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы
 
Приключения белого ящика в стране покрытий
Приключения белого ящика в стране покрытийПриключения белого ящика в стране покрытий
Приключения белого ящика в стране покрытий
 
Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python? Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python?
 
Подгурский Михаил - Обучение и самообучение | HappyDev'12
Подгурский Михаил - Обучение и самообучение  | HappyDev'12Подгурский Михаил - Обучение и самообучение  | HappyDev'12
Подгурский Михаил - Обучение и самообучение | HappyDev'12
 
Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...
Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...
Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер ...
 
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
2015-12-05 Антон Непомнящих - Agile — как уложиться в сроки и бюджет?
 
Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...
Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...
Антон Язовский - Marklogic: как обуздать сотни гигабайт неструктурированных д...
 
Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12
Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12
Александр Кудымов - Путь самурая от скрама до канбана | HappyDev'12
 
Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12
Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12
Андрей Шапиро - От дизайн-процесса к дизайн-результату | HappyDev'12
 
Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...
Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...
Глеб Белокрыс - Ретроспектива семилетней итерации или как сделать себя несчас...
 
Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
 
Процесс тестирования. Измерение и оценка
Процесс тестирования. Измерение и оценкаПроцесс тестирования. Измерение и оценка
Процесс тестирования. Измерение и оценка
 
Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12
 
Проверка влияния внешних событий на работу мобильного приложения
Проверка влияния внешних событий на работу мобильного приложенияПроверка влияния внешних событий на работу мобильного приложения
Проверка влияния внешних событий на работу мобильного приложения
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
 
Аналитик в Agile (SEF-09)
Аналитик в Agile (SEF-09)Аналитик в Agile (SEF-09)
Аналитик в Agile (SEF-09)
 
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
2015-12-06 Букуров Алексей - Автоматическое формирование интерфейса по метаоп...
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Практическое применение Sikuli Script в автоматизации тестирования

  • 1. Практическое применение Sikuli Script в автоматизации тестирования Вадим Зубович DPI Solutions
  • 2. Коротко о себе Вадим Зубович DPI Solutions / ISSoft Skype: dpi.zubovich E-mail: zubovich@dpisoft.com http://www.dpi.solutions/
  • 3. Что такое Sikuli Script Sikuli-Script – библиотека Java, на которой базируется инструмент для автоматизации Sikuli-X, в основе которого лежит принцип распознавания образов и изображений.
  • 4. Profit??? Когда полезен Sikuli-Script: ● Автоматизация Flash ● Автоматизация HTML-5 Canvas ● Автоматизация Active-X приложений ● Проверка наличия и корректности изображений в приложении ● Здесь может быть ваш пример
  • 5. В чем проблема Flash, Canvas, Active-X: Как его видим мы Как его видит WebDriver
  • 7. Ингредиенты Нам понадобятся: ● Инструмент для снятия скриншотов. ● JDK ● IDE для работы с Java ● Библиотека sikuli-script.jar
  • 8. Подготовка Скачиваем Sikuli-X setup: www.sikuli.org/download.html
  • 10. Подготовка Добавляем библиотеку sikuli-script.jar в локальный репозиторий Maven: mvn install:install-file –Dfile=C:Sikuli- Scriptsikuli-script.jar - DgroupId=com.sikuli.script -DartifactId=sikuli –Dversion=1.0.1 -Dpackaging=jar
  • 11. Подготовка Прописываем зависимость в .POM: <dependency> <groupId>com.sikuli.script</groupId> <artifactId>sikuli</artifactId> <version>1.0.1</version> </dependency>
  • 12. Подготовка Не любите Maven? Добавьте в classpath!
  • 13. Основные классы и методы App – используется для запуска приложения App.open(“<path to application>”); App application = App.open(“<path>”); application.focus();//переводит фокус на наше приложение application.window();//Возвращает объект Region, включающий только содержимое окна приложения
  • 14. Основные классы и методы Screen – охватывает весь экран Screen scr = new Screen(); scr.click(“<image>”); scr.rightClick(“<image>”); scr.doubleClick(“<image>”); scr.dragDrop(“<source image>”,“<target image>”); scr.hover(“<image>”); scr.paste(“<image>”, “<text>”); scr.find(“<image>”);//возвращает объект Match scr.exists(“<image>”);//возвращает объект Match scr.wait(“<image>”, double milis);//возвращает объект Match
  • 16. Основные классы и методы Region – заданный регион на экране Region reg = scr.find(“<image>”); reg.click(“<image>”); reg.rightClick(“<image>”); reg.doubleClick(“<image>”); reg.dragDrop(“<source image>”,“<target image>”); reg.hover(“<image>”); reg.paste(“<image>”, “<text>”); scr.find(“<image>”);//возвращает объект Match scr.exists(“<image>”);//возвращает объект Match scr.wait(“<image>”, double milis);//возвращает объект Match
  • 18. Основные классы и методы Pattern – шаблон для нахождения картинки на экране Pattern pat = new Pattern(“<image>”); pat.exact();//будет искать точное совпадение pat.similar(float similarity);//будет искать совпадение с отклонением pat.targetOffset(int x, int y);//будет работать с регионом со смещением
  • 19. Особенности архитектуры На базе Sikuli-Script можно строить привычный PageObject, но со ссылками на картинки вместо привычных для WebDriver локаторов.
  • 20. Особенности архитектуры Хранить картинки удобнее всего в ресурсах, разложив их по папкам, соответствующим названиям страниц.
  • 21. Sikuli Web Driver Sikuli Web Driver – расширение Web Driver, использующее возможности работы с изображенями, доступные в Sikuli
  • 22. Sikuli Web Driver Подключаем зависимость Maven <dependency> <groupId>org.sikuli</groupId> <artifactId>sikuli-webdriver</artifactId> <version>1.0.1</version> </dependency> При этом подключаются org.sikuli.api, org.sikuli.core и org.sikuli.webdriver
  • 23. Sikuli Web Driver Сама по себе библиотека org.sikuli.api не содержит методов для взаимодействия с найденными изображениями
  • 24. Sikuli Web Driver Как искать элементы с использованием Sikuli Web Driver:
  • 25. Sikuli + Selenide Используем Sikuli Web Driver вместе с Selenide
  • 26. Спасибо за внимание Приятной Вам автоматизации Вадим Зубович DPI Solutions / ISSoft Skype: dpi.zubovich E-mail: zubovich@dpisoft.com http://www.dpi.solutions/