Що таке selenium webdriver
Засновник белоукраінского спільноти автоматизаторів COMAQA.BY Антон Семенченко розповідає про те, що таке Selenium Webdriver і які переваги має цей інструмент.

Webdriver - популярний інструмент для управління реальним браузером, який можна використовувати як для автоматизації тестування веб додатків, так і для виконання інших рутинних завдань, пов'язаних з роботою в інтернеті. Управління відбувається як локально, так і віддалено і найближче імітіруюет дії користувача.
Крім того, Webdriver - проект з відкритим вихідним кодом, підтримує безліч мов програмування і має велике співтовариство користувачів.
Selenium 2 (або Webdriver) - останнє поповнення в пакеті інструментів Selenium і є основним вектором розвитку проекту. Це абсолютно новий інструмент автоматизації. У порівнянні з Selenium RC Webdriver використовує зовсім інший спосіб взаємодії з браузерами. Він безпосередньо викликає команди браузера, використовуючи рідної для кожного конкретного браузера API. Як відбуваються ці виклики і які функції вони виконують залежить від конкретного браузера.
Найголовніша зміна нової версії Selenium - це Webdriver API.
Selenium 1.0 (RC) + WebDriver = Selenium 2.0
У порівнянні з більш старим інтерфейсом він має низку переваг:
- інтерфейс Webdriver був спроектований більш простим і виразним;
- Webdriver володіє більш компактним і об'єктно-орієнтованим API;
- Webdriver управляє браузером більш ефективно, а також справляється з деякими обмеженнями, характерними для Selenium RC, як завантаження та відправлення файлів, попап і дилогії.
Для роботи з Webdriver необхідно три основних програмних компонента:
- Браузер. роботу якого користувач хоче автоматизувати. Це реальний браузер певної версії, встановлений на певній ОС і має свої налаштування (за замовчуванням або кастомниє). Насправді Webdriver може працювати і з «несправжніми» браузерами, але детально про них пізніше.
- Для управління браузером абсолютно необхідний драйвер браузера. Driver насправді є веб-сервером, який запускає браузер і відправляє йому команди, а також закриває його. У кожного браузера свій driver. Пов'язано це з тим, що у кожного браузера свої відмінні команди управління і реалізовані вони по-своєму. Знайти список доступних драйверів і посилання для скачування можна на офіційному сайті проекту Selenium.
- Скрипт / тест. який містить набір команд на певному мовою програмування для драйвера браузера. Такі скрипти використовують Selenium Webdriver bindings (готові бібліотеки), які доступні користувачам на різних мовах.
Важливою особливістю інструменту є використовуваний їм JSON Wire Protocol. Все реалізації Webdriver, які взаємодіють з браузером, або RemoteWebdriver сервер використовують загальний протокол, який називається JSON Wire Protocol. Він визначає RESTful веб-сервіс, використовуючи JSON по HTTP.
Якщо клієнтська реалізація Webdriver передбачає об'єктно-орієнтована варіант, то JSON Wire protocol вдає із себе більш плоский Webdriver API у вигляді request / response пар команд і відповідей.
Такий підхід до архітектури інструменту уможливив розробку драйвера кожного окремого браузера незалежної один від одного і від розробки клієнта. Більш того, це дало можливість віддати цю задачу самим вендорам браузерів.
На даний момент Json Wire Protocol є робочим чернеткою стандарту. де-факто Webdriver - вже стандарт. Тепер ChromeDriver розробляється і підтримується розробниками браузера Chrome, команда Firefox також розробляє драйвер для свого браузера.
З іншого боку, маючи універсальний протокол і клієнт до нього, ми можемо використовувати їх для будь-якого бекенд, що має на меті автоматизацію функціонального управління додатком. Appium (інструмент для автоматизації мобільних додатків) і Winium (інструмент для автоматизації Windows-додатків), обидва використовують Webdriver JSON Wire Protocol і клієнт - лише деякі з багатьох прикладів. Є і більш екзотичні варіанти, на кшталт QTWebdriver, який дозволяє автоматизувати QT-додатки, використовуючи Webdriver-клієнт і API.
Крім того, Selenium Webdriver - відкритий і дуже гнучкий інструмент. Він легко інтегрується з різними тестовими фреймворками і іншими інструментами, дозволяючи створювати на його основі більш цілеспрямовані інструменти для функціонального тестування, тестування продуктивності, web crawling і інших цілей.

Тиждень за 10 посилань: про розумних інтровертів в ІТ
У свіжому ссилкообзоре про те, як потрапити в ІТ дітям і моделям, про нічні адмін Itransition, інтровертів, нейронних мережах і криптографії, а також про труднощі веб-програмування, ідеальному коді і долі jQuery.

Як не треба вчити програмувати: 13 головних помилок
Java-розробник і викладач власної школи програмування Павло Вейник узагальнює основні помилки мінських курсів для початківців кодеров.

Сьогодні роль бізнес-аналітика - якийсь компроміс в галузі розробки програмного забезпечення.

Тиждень за 10 посилань: національні особливості імпортозаміщення
Думки слідами можливі арешти в IBA та інтерв'ю про доповнену реальність з покемонами в новій білоруської грі, шкідливі поради з програмування на PHP і корисні - по Ruby і Go - в новому ссилкообзоре за.