SlideShare a Scribd company logo
1 of 53
Selenium vs AJAX
   [Crash Course]

  Алексей Баранцев
 Software-Testing.Ru
 SeleniumCamp 2012
Я буду рассказывать про WebDriver
Потому что за ним
будущее
Это курс уровня 300
         Я предполагаю,
         что вы:
          понимаете, что
           WebDriver это не
           Selenium RC :)
          в целом знаете
           интерфейс
           WebDriver
          хорошо знаете,
           что такое DOM
          немного знаете
           JavaScript
«Клеточный уровень»
     автотестов
Тесты на «клеточном уровне»
      Подожди,
     пока можно   Выполни
      выполнить   действие
       действие




                  Подожди,
      Выполни     пока будет
      проверку       готов
                   результат
Подожди, пока…
 Загрузится страница
 Появится элемент
 Элемент станет
  видимым
 Элемент исчезнет
 Появится alert
 Появится окно
…
Подожди, пока…
загрузится страница
Завершение загрузки страницы
FF, Chrome, IE, Opera – загрузка синхронная

  завершение определяется «автоматически»

  selenium.waitForPageLoad(" 30000 ");



  – не работает, если есть long poll или типа того
Завершение загрузки страницы
FF – режим асинхронной загрузки

  FirefoxProfile fp = new FirefoxProfile();
  fp.setPreference("webdriver.load.strategy", "unstable");
  // до версии 2.19 было "fast"


HtmlUnit

  client.setRefreshHandler(new WaitingRefreshHandler());
Подожди, пока…
появится элемент
Но сначала – про
поиск элементов
Методы поиска
(методы «отбора»)


driver.findElement
driver.findElements
element.findElement
element.findElements
Встроенные стратегии поиска

id
name
tagName
className
xpath
cssSelector
linkText
Забудьте про код страницы!
Selenium работает с DOM!
AJAX

Сложная структура DOM
DOM строится динамически
DOM меняется!!!

Нет уникальных id или name
Вообще нет id или name
Подожди, пока…
появится элемент
«Найден» – не значит «виден»!
               http://foto.rambler.ru/users/timnbjj/tags/12/4e27c513-38f7-092a-b29e-38e697847dcd/
«Виден» – не значит «доступен»!
Состояния элемента

                   Отсутствует (не найден)



                       Есть, но невидимый



Есть, видимый, но не                        Есть, видимый, можно
      interactable                           выполнять действия



                   Был, но удалён из DOM
Видимость элемента
bot.dom.isShown = function(elem, opt_ignoreOpacity) {
   // Title elements are shown if and only if they belong to the bot window.
   // Option or optgroup is shown iff enclosing select is shown.
   // Map is shown iff image that uses it is shown.
   // Area is shown iff enclosing map is shown.
   // Any hidden input is not shown.
   // Any element with hidden visibility is not shown.
   // Any element with a display style equal to 'none' or that has an ancestor
   // with display style equal to 'none' is not shown.
   // Any transparent element is not shown.
   // Any element without positive size dimensions is not shown.
   // Zero-sized elements should still be considered to have positive size
   // if they have a child element or text node with positive size.
Имплицитные ожидания
driver.manage().timeouts()
   .implicitlyWait(10, TimeUnit.SECONDS);



dialog = driver.findElement(By.id("dialog-confirm-delete"));


методы поиска становятся синхронными
findElements ищет хотя бы один элемент
ожидание – на стороне браузера
Когда это не работает




надо просто проверить наличие элемента
надо найти один (любой) элемент из двух
ожидание исчезновения элемента
Эксплицитные ожидания
WebDriverWait + ExpectedCondition
new WebDriverWait(driver, 30).until(
  presenceOfElementLocated(By.id("dialog-confirm-delete")));

 public static ExpectedCondition<WebElement>
    presenceOfElementLocated(final By locator)
{
    return new ExpectedCondition<WebElement>() {
       public WebElement apply(WebDriver driver) {
         return findElement(locator, driver);
       }
    };
  }
Подожди, пока…
  [что угодно]
Подожди, пока…
 Загрузится страница
 Появится элемент
 Элемент станет
  видимым
 Элемент исчезнет
 Появится alert
 Появится окно
…
ExpectedConditions: готовые условия
 Загрузка страницы
 wait.until(titleIs("New page title"));

 Появление элемента
 wait.until(presenceOfElementLocated(locator));

 Видимость элемента
 wait.until(visibilityOfElementLocated(locator));

 Невидимость элемента
 wait.until(invisibilityOfElementLocated(locator));
 Исчезновение элемента из DOM
 wait.until(stalenessOf(element));
Тонкая настройка
WebDriverWait – это FluentWait<WebDriver>

withTimeout(timeOutInSeconds, TimeUnit.SECONDS);
pollingEvery(sleepTimeOut, TimeUnit.MILLISECONDS);
ignoring(NotFoundException.class);
WebElementWait
FluentWait<WebElement>

 public static Predicate<WebElement> displayed
   = new Predicate<WebElement>(
{
   public boolean apply(WebElement el) {
     return el.isDisplayed();
   }
};

new WebElementWait(element, 30).until(displayed);
Ожидание появления алерта




wait.until(ExpectedConditions.alertIsPresent());
Как проверить отсутствие?




в FF ожидание алерта «полусинхронное»
 driver.switchTo().alert() ждёт две секунды
Альтернатива: автоперехват




 любое действие может завершиться с
  UnhandledAlertException
 зато больше нет «вечной блокировки»
  на неожиданных алертах
Ожидание открытия нового окна
Ожидание
открытия окна
 Нет готового
  ExpectedCondition
 Почему?
 Потому что его
  нельзя сделать
 Надо сначала
  запомнить
  driver.getWindowHandles()
    потом кликнуть
    а потом ждать,
     когда изменится
     список окон
Ещё немного про окна
Не переключайтесь слишком быстро!
 http://code.google.com/p/selenium/issues/detail?id=2764
Ещё немного про окна
Не забудьте переключиться обратно
 после закрытия окна
Действия с элементами
«Традиционные» действия
кликнуть
  ссылки
  радиобатоны и чекбоксы
  списки
ввести текст
прицепить файл
Действия «с JavaScript’ом»
             клавиатурные
              сочетания
             ввести текст
              «п о с т е п е н н о»
             правая кнопка мыши
             перетаскивание
             наведение мыши
             двойной клик
Что умеет WebDriver
click
sendKeys
и всё 
Что умеет WebDriver
select?
 это несколько кликов
toggle?
 это просто click
check/uncheck?
 это просто click
«Сахар», впрочем, не мешает
clear для полей ввода
submit для любого элемента формы



  Пользователь не
    может этого
     сделать!!!
«Сахар», впрочем, не мешает
new Select(selectElement)
  selectByText(text) – с нормализацией пробелов
  selectByValue(value)
click: подробности
На что можно кликнуть?
Невидимые элементы: как по ним кликать?
Какие обработчики сработают?
  клик поднимается вверх по DOM’у
  по крайней мере должен 
Координаты клика?
  левый верхний угол?
  центр?
Автоскроллирование
sendKeys: подробности
           Где можно
            нажимать клавиши?
           Как заполнить
            невидимое поле?
           Какие обработчики
            сработают?
             поднимаются вверх
              по DOM’у
             по крайней мере
              должны 
Почему так медленно???




каждая клавиша отдельно
keyDown, keyUp, keyPress
особенно заглавные буквы!!!
А можно ли быстро?




          http://art-apple.ru/displayimage.php?album=13&pos=4
Native vs Synthesized
FirefoxProfile p = new FirefoxProfile();
p.setEnableNativeEvents(false);
sendKeys для «нетекста»
         <input type=“file”>
         ENTER/RETURN
         стрелки и прочая
          навигация
         Keys.chord
         «хоткеи»
         Ctrl-A/Ctrl-C/Ctrl-V
           быстрая вставка
Actions: тонкие действия
            сlick
            contextClick
            moveToElement
              не персистентно!!!
            clickAndHold/release
              dragAndDrop
            sendKeys
            keyDown/keyUp
Ещё более тонкие действия
          Координаты
            moveToElement
            moveByOffset
            dragAndDropBy
          Действия «без элемента»
            click
            clickAndHold/release
            sendKeys
            keyDown/keyUp
Алексей Баранцев, Software-Testing.Ru
email: barancev@gmail.com
skype: barancev

http://software-testing.ru/test_automation/
http://software-testing.ru/trainings/
http://selenium2.ru/

More Related Content

What's hot

Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейPaul Stashevsky
 
Selenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euSelenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euAndrei Solntsev
 
Человекопонятные отчёты
Человекопонятные отчётыЧеловекопонятные отчёты
Человекопонятные отчётыbearoff
 
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QAFest
 
Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.MageCloud
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Контроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupКонтроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupTimophy Chaptykov
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIPavel Asanov
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.Igor Shkulipa
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...tfmailru
 
Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"
Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"
Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"IT Event
 
Automation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAutomation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAndrey Rebrov
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.Igor Shkulipa
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Как не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаКак не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаtfmailru
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 
Руководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из SeleniumРуководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из SeleniumUladzimir Kryvenka
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование версткиTalks&Works
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.Igor Shkulipa
 

What's hot (20)

Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
 
Selenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.euSelenide puzzlers @ devclub.eu
Selenide puzzlers @ devclub.eu
 
Человекопонятные отчёты
Человекопонятные отчётыЧеловекопонятные отчёты
Человекопонятные отчёты
 
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
 
Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Контроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать MakeupКонтроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать Makeup
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST API
 
JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.JavaScript Базовый. Занятие 07.
JavaScript Базовый. Занятие 07.
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
 
Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"
Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"
Артемий Гарин "Выбор лучшего хранилища в Android (cпойлер: Realm)"
 
Automation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAutomation Functional Testing in Agile Projects
Automation Functional Testing in Agile Projects
 
JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.JavaScript Базовый. Занятие 02.
JavaScript Базовый. Занятие 02.
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Как не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаКак не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кода
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
Руководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из SeleniumРуководство по приготовлению бутербродов из Selenium
Руководство по приготовлению бутербродов из Selenium
 
Регрессионное тестирование верстки
Регрессионное тестирование версткиРегрессионное тестирование верстки
Регрессионное тестирование верстки
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.
 

Viewers also liked

Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграцииIgor Khrol
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
 
РИФ 2016, По ту сторону баррикад. Интернет для b2b
РИФ 2016, По ту сторону баррикад. Интернет для b2bРИФ 2016, По ту сторону баррикад. Интернет для b2b
РИФ 2016, По ту сторону баррикад. Интернет для b2bТарасов Константин
 
РИФ 2016, Интранет-портал для Правительства Московской области
РИФ 2016, Интранет-портал для Правительства Московской областиРИФ 2016, Интранет-портал для Правительства Московской области
РИФ 2016, Интранет-портал для Правительства Московской областиТарасов Константин
 
Pra presentation
Pra presentationPra presentation
Pra presentationrskipper
 
РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...
РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...
РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...Тарасов Константин
 
Establishing Efficicent IR Communication Platform
Establishing Efficicent IR Communication PlatformEstablishing Efficicent IR Communication Platform
Establishing Efficicent IR Communication PlatformFormulaS
 
РИФ 2016, Перезапуск ИТ-архитектуры ИМ Экспедиции
РИФ 2016, Перезапуск ИТ-архитектуры ИМ ЭкспедицииРИФ 2016, Перезапуск ИТ-архитектуры ИМ Экспедиции
РИФ 2016, Перезапуск ИТ-архитектуры ИМ ЭкспедицииТарасов Константин
 
РИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИА
РИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИАРИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИА
РИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИАТарасов Константин
 
όργουελ εναντίον χάξλεϋ 2
όργουελ εναντίον χάξλεϋ 2όργουελ εναντίον χάξλεϋ 2
όργουελ εναντίον χάξλεϋ 2Kostas Tampakis
 
РИФ 2016, «Здоровая вода»: Сквозная аналитика
РИФ 2016, «Здоровая вода»: Сквозная аналитикаРИФ 2016, «Здоровая вода»: Сквозная аналитика
РИФ 2016, «Здоровая вода»: Сквозная аналитикаТарасов Константин
 
РИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех лет
РИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех летРИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех лет
РИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех летТарасов Константин
 
РИФ 2016, Performance-маркетинг для банков: управление на основе сложных целей
РИФ 2016, Performance-маркетинг для банков: управление на основе сложных целейРИФ 2016, Performance-маркетинг для банков: управление на основе сложных целей
РИФ 2016, Performance-маркетинг для банков: управление на основе сложных целейТарасов Константин
 
РИФ 2016, Телеканал для тех, кому не наплевать
РИФ 2016, Телеканал для тех, кому не наплеватьРИФ 2016, Телеканал для тех, кому не наплевать
РИФ 2016, Телеканал для тех, кому не наплеватьТарасов Константин
 

Viewers also liked (20)

Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
РИФ 2016, По ту сторону баррикад. Интернет для b2b
РИФ 2016, По ту сторону баррикад. Интернет для b2bРИФ 2016, По ту сторону баррикад. Интернет для b2b
РИФ 2016, По ту сторону баррикад. Интернет для b2b
 
РИФ 2016, Интранет-портал для Правительства Московской области
РИФ 2016, Интранет-портал для Правительства Московской областиРИФ 2016, Интранет-портал для Правительства Московской области
РИФ 2016, Интранет-портал для Правительства Московской области
 
Pra presentation
Pra presentationPra presentation
Pra presentation
 
21 shevchenko-optimizatoin2010 доп услуга
21 shevchenko-optimizatoin2010 доп услуга21 shevchenko-optimizatoin2010 доп услуга
21 shevchenko-optimizatoin2010 доп услуга
 
Astonishing beauty
Astonishing beautyAstonishing beauty
Astonishing beauty
 
Web analytics for_conversion_growth_only_real_cases
Web analytics for_conversion_growth_only_real_casesWeb analytics for_conversion_growth_only_real_cases
Web analytics for_conversion_growth_only_real_cases
 
РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...
РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...
РИФ 2016, Performance marketing в Omnichannel: Как измерение и оптимизация во...
 
Establishing Efficicent IR Communication Platform
Establishing Efficicent IR Communication PlatformEstablishing Efficicent IR Communication Platform
Establishing Efficicent IR Communication Platform
 
РИФ 2016, Перезапуск ИТ-архитектуры ИМ Экспедиции
РИФ 2016, Перезапуск ИТ-архитектуры ИМ ЭкспедицииРИФ 2016, Перезапуск ИТ-архитектуры ИМ Экспедиции
РИФ 2016, Перезапуск ИТ-архитектуры ИМ Экспедиции
 
English astronomie21
English astronomie21English astronomie21
English astronomie21
 
РИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИА
РИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИАРИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИА
РИФ 2016, ТЕЛЕКАНАЛЫ ХОЛДИНГА СТС МЕДИА
 
Japan2
Japan2Japan2
Japan2
 
όργουελ εναντίον χάξλεϋ 2
όργουελ εναντίον χάξλεϋ 2όργουελ εναντίον χάξλεϋ 2
όργουελ εναντίον χάξλεϋ 2
 
РИФ 2016, «Здоровая вода»: Сквозная аналитика
РИФ 2016, «Здоровая вода»: Сквозная аналитикаРИФ 2016, «Здоровая вода»: Сквозная аналитика
РИФ 2016, «Здоровая вода»: Сквозная аналитика
 
РИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех лет
РИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех летРИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех лет
РИФ 2016, Ульяновская «IT-движуха»: опыт, результаты четырех лет
 
РИФ 2016, Performance-маркетинг для банков: управление на основе сложных целей
РИФ 2016, Performance-маркетинг для банков: управление на основе сложных целейРИФ 2016, Performance-маркетинг для банков: управление на основе сложных целей
РИФ 2016, Performance-маркетинг для банков: управление на основе сложных целей
 
РИФ 2016, Телеканал для тех, кому не наплевать
РИФ 2016, Телеканал для тех, кому не наплеватьРИФ 2016, Телеканал для тех, кому не наплевать
РИФ 2016, Телеканал для тех, кому не наплевать
 

Similar to Selenium vs AJAX

CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUICodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUICodeFest
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Appium для народа
Appium для народаAppium для народа
Appium для народаSQALab
 
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rcautomated-testing.info
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоStanfy
 
Тестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и SeleniumТестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и SeleniumSQALab
 
Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
 Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
Зачем нужен JavaScript в iOS-приложениях. Евгений ДымовYandex
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.Igor Shkulipa
 
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...CodeFest
 
FPUG Dzyga presentation
FPUG Dzyga presentationFPUG Dzyga presentation
FPUG Dzyga presentationIvan Filimonov
 
SECON'2016. Иовлев Роман, JDI is UI Automation Future
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON'2016. Иовлев Роман, JDI is UI Automation Future
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Andrey Rebrov
 
Автоматический контроль качества front-end-содержимого
Автоматический контроль качества front-end-содержимогоАвтоматический контроль качества front-end-содержимого
Автоматический контроль качества front-end-содержимогоMedia Gorod
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb SpockBohdan Danyliuk
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаprivate_face
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Ontico
 

Similar to Selenium vs AJAX (20)

CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUICodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
 
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rc
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
 
Тестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и SeleniumТестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и Selenium
 
Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
 Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
Зачем нужен JavaScript в iOS-приложениях. Евгений Дымов
 
JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.JavaScript Базовый. Занятие 10.
JavaScript Базовый. Занятие 10.
 
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
 
Automation testing desktop applications
Automation testing desktop applicationsAutomation testing desktop applications
Automation testing desktop applications
 
FPUG Dzyga presentation
FPUG Dzyga presentationFPUG Dzyga presentation
FPUG Dzyga presentation
 
SECON'2016. Иовлев Роман, JDI is UI Automation Future
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON'2016. Иовлев Роман, JDI is UI Automation Future
SECON'2016. Иовлев Роман, JDI is UI Automation Future
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
 
Автоматический контроль качества front-end-содержимого
Автоматический контроль качества front-end-содержимогоАвтоматический контроль качества front-end-содержимого
Автоматический контроль качества front-end-содержимого
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock
 
Профилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кодаПрофилирование и оптимизация jQuery–кода
Профилирование и оптимизация jQuery–кода
 
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
Профилирование и оптимизация jQuery–кода (Владимир Журавлёв)
 

More from Alexei Barantsev

Я бы в тестеры пошёл...
Я бы в тестеры пошёл...Я бы в тестеры пошёл...
Я бы в тестеры пошёл...Alexei Barantsev
 
Как выращивать автотесты? (MSTC, июнь 2015)
Как выращивать автотесты? (MSTC, июнь 2015)Как выращивать автотесты? (MSTC, июнь 2015)
Как выращивать автотесты? (MSTC, июнь 2015)Alexei Barantsev
 
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?Alexei Barantsev
 
Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?Alexei Barantsev
 
Переходя все границы - 2, UATD, Одесса, 2012
Переходя все границы - 2, UATD, Одесса, 2012Переходя все границы - 2, UATD, Одесса, 2012
Переходя все границы - 2, UATD, Одесса, 2012Alexei Barantsev
 
Знание vs Незнание: что полезнее для тестирования?
Знание vs Незнание: что полезнее для тестирования?Знание vs Незнание: что полезнее для тестирования?
Знание vs Незнание: что полезнее для тестирования?Alexei Barantsev
 
Как узнать, что вы хорошо работаете
Как узнать, что вы хорошо работаетеКак узнать, что вы хорошо работаете
Как узнать, что вы хорошо работаетеAlexei Barantsev
 
Анатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестированияАнатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестированияAlexei Barantsev
 

More from Alexei Barantsev (10)

Я бы в тестеры пошёл...
Я бы в тестеры пошёл...Я бы в тестеры пошёл...
Я бы в тестеры пошёл...
 
Как выращивать автотесты? (MSTC, июнь 2015)
Как выращивать автотесты? (MSTC, июнь 2015)Как выращивать автотесты? (MSTC, июнь 2015)
Как выращивать автотесты? (MSTC, июнь 2015)
 
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?
 
Chiefconfetqa nalutin
Chiefconfetqa nalutinChiefconfetqa nalutin
Chiefconfetqa nalutin
 
Decorating Selenium
Decorating SeleniumDecorating Selenium
Decorating Selenium
 
Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?Почему самообразование важно для тестировщика ПО?
Почему самообразование важно для тестировщика ПО?
 
Переходя все границы - 2, UATD, Одесса, 2012
Переходя все границы - 2, UATD, Одесса, 2012Переходя все границы - 2, UATD, Одесса, 2012
Переходя все границы - 2, UATD, Одесса, 2012
 
Знание vs Незнание: что полезнее для тестирования?
Знание vs Незнание: что полезнее для тестирования?Знание vs Незнание: что полезнее для тестирования?
Знание vs Незнание: что полезнее для тестирования?
 
Как узнать, что вы хорошо работаете
Как узнать, что вы хорошо работаетеКак узнать, что вы хорошо работаете
Как узнать, что вы хорошо работаете
 
Анатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестированияАнатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестирования
 

Selenium vs AJAX