Робота з Webdriver (ч.5, використання драйверів)

Драйвери Selenium-WebDriver

WebDriver це назва основного інтерфейсу, на якому повинні бути написані тести, але є кілька реалізацій. До них відносяться:


HtmlUnit Driver
В даний час це найшвидшаі найлегша реалізація WebDriver. Як випливає з назви, він заснований на HtmlUnit. HtmlUnit реалізація WebBrowser на основі Java без графічного інтерфейсу. Для зв’язування будь-якої мови (крім Java) Selenium Server потребує використовувати цей драйвер.

Використання:

Плюси:
Найшвидша реалізація WebDriver
Написаний на чистій Java, і тому не залежить від платформи
Підтримка JavaScript
Мінуси:
Емуляція поведінки JavaScript інших браузерів (див. нижче)

JavaScript в HtmlUnit Driver
Жоден з популярних браузерів не використовує такий двигун JavaScript, що використовується в HtmlUnit (Rhino). Якщо ви тестуєте JavaScript використовуючи HtmlUnit результати можуть істотно відрізнятися від інших браузерів.

Коли ми говоримо “JavaScript” ми маємо на увазі “JavaScript і DOM”. Хоча DOM визначається W3C, кожен браузер має свої власні примхи і відмінності в реалізації DOM і в тому, як JavaScript взаємодіє з ним. HtmlUnit має вражаюче повну реалізацію DOM і має хорошу підтримку для використання JavaScript, але він нічим не відрізняється від будь-якого іншого браузера: він також має свої тонкощі і відмінності як від стандарту W3C і DOM реалізацій в основних браузерах, незважаючи на його здатність наслідувати інші браузери.

З WebDriver, ми повинні зробити вибір: ми робимо підтримку JavaScript HtmlUnit-ом і ризкуємо зіштовкнутися з проблемами, які проявляються в певних місцях, або ми вимикаємо JavaScript, знаючи, що все більше і більше сайтів працюють, використовуючи JavaScript? HtmlUnit використовує консервативний підхід, і за замовчуванням відключає підтримку JavaScript, коли використовує HtmlUnit. З кожним релізом як WebDriver, так і HtmlUnit, переглядається це рішення: HtmlUnit сподівається включити JavaScript за замовчуванням в якийсь момент.

Включення JavaScript
Якщо ви не можете чекати, включити підтримку JavaScript дуже просто:

Це спричинить емуляцію Firefox 3.6 в обробці JavaScript за замовчуванням в HtmlUnit Driver.


Драйвер Firefox

Драйвер управляє браузером Firefox за допомогою плагіна Firefox. Профіль Firefox, який використовується урізаний на відміну від того, що встановлений на комп’ютері, щоб включити тільки плагін Selenium WebDriver.xpi. Драйвер може встановлюватися і тестуватися на Windows, Mac та Linux.

Плюси:
Працює в реальному браузері і підтримує JavaScript
Швидше, ніж драйвер Internet Explorer
Мінуси:
Повільніше, ніж драйвер HtmlUnit

Інформація
Дивіться розділ Firefox для найбільш актуальної інформації.


Драйвер Internet Explorer
Цей драйвер управляється .dll, таким чином доступний тільки на ОС Windows.

Плюси:
Працює в реальному браузері і підтримує технологію JavaScript, так як бачать кінцеві користувачі.
Мінуси:
Очевидно, драйвер Internet Explorer буде працювати тільки на Windows
Порівняно повільно
XPath спочатку не підтримувався в більшості версій.
CSS спочатку не підтримувався у версіях 6 і 7.
CSS селектори в IE 8 і 9 є за замовчуванням, але ці браузери не повністю підтримують CSS3

Інформація
Дивіться розділ Internet Explorer для найбільш актуальної інформації.


Драйвер Chrome
Драйвер Chrome впроваджується і підтримується розробниками проекту Chromium. WebDriver працює з Chrome через двійковій код драйвера Chrome (знаходиться на сторінці завантаження проекту chromium). Ви повинні мати як драйвер Chrome і встановлений браузер Chrome. Драйвер Chrome повинен бути розміщений десь на вашій системі для того, щоб WebDriver автоматичного виявив його. Сам браузер Chrome виявляє драйвер Chrome за шляхом установки за замовчуванням. Вони обидва можуть бути змінені.

Плюси:
Працює в реальному браузері і підтримує технологію JavaScript
Оскільки Chrome є Webkit-браузером, драйвер Chrome може дозволити вам переконатися, що ваш сайт працює в Safari. Однак, з того часу, як Chrome почав використовувати власний V8 JavaScript, а не Nitro двигун Safari, виконання JavaScript може відрізнятися.
Мінуси:
Повільніше, ніж драйверHtmlUnit

Інформація
Дивіться розділ Chrome для найбільш актуальної інформації.


Додаткові Ресурси
Ви можете знайти додаткові ресурси для роботи з WebDriver в вікіпедії WebDriver .