Selenium 2.0 - це
інструмент автоматизації функціонального тестування. який включає в
себе два раніше незалежних проекту - Selenium Remote Control і
WebDriver. У Selenium 2.0 можна використовувати всі принади як Selenium
WebDriver, так і Selenium RC (в режимі сумісності з WebDriver).
Розробники інструменту рекомендують використовувати Selenium WebDriver в
тих місцях, де не справляється Selenium RC, звичайно, якщо немає інших
факторів, які можуть впливати на вибір інструменту автоматизації. при
роботі над Selenium 2.0 основна робота йшла над Selenium WebDriver і
режимом сумісності з Selenium RC. Сам Selenium RC особливих змін
не зазнав, в основному фікс старі баги, тому швидше за все
доведеться переписувати деякі тести (прибирати милиці і т.п.), якщо ви
збираєтеся використовувати RC в режимі сумісності.
Архітектуру Selenium RC
можна представити в такий спосіб: Авто тести -> Selenium RC Server
-> Браузер -> тестованого програми. Як працює Selenium RC:
В архітектурі Selenium WebDriver відсутня "прошарок" Selenium RC
Server. Зате додається шар Driver, який і відповідає за
взаємодія з браузером. Ось так влаштований Selenium WebDriver:
головне достоїнство
Selenium WebDriver полягає в тому, що він використовує драйвери,
адаптовані під конкретний браузер. тобто Selenium WebDriver
працює з кожним браузером по "індивідуальною програмою". це підвищує
стабільність роботи тестів (так як вони заточуються під конкретний
браузер), тести стає простіше писати і підтримувати, збільшується
швидкість їх роботи. Selenium WebDriver використовує нативні команди
(Намагається повністю емітувати дії користувача), що є
важливою перевагою перед Selenium RC.
На даний момент існують такі драйвери:
Список підтримуваних мов в Selenium WebDriver: C #, Java, Ruby, Phyton.
Про основні команди в
Selenium WebDriver я постараюся написати в наступних замітках, варто
лише зазначити, що деякі принципи роботи в порівнянні c Selenium 1.0
все ж змінилися в кращу сторону. Так, WebDriver пропонує
досить гнучку роботу з очікуваннями подій на сторінці. це
пояснюється тим, що WebDriver спрямований в першу чергу на роботу з
складним, перевантаженими AJAX запитами веб-інтерфейсами. розробники
пропонують два механізму очікування (Explicit Waits, Implicit Waits), тут
можна подивитися опис і приклади. Explicit Waits (експліцитно
очікування), з використанням класу WebDriverWait, представляє сабой
фактично циклічне очікування події. Implicit Waits (імпліцитне
очікування) - все команди пошуку елементів автоматично стають
які очікували. Природно, можна використовувати свої методи очікування, ну або
(Що дуже не бажано
) Thread.sleep (). До речі, Selenium WebDriver вміє працювати з HTML 5!
Також, дуже порадував змінений механізм роботи з локаторами -
працювати стало гараздо зручніше. У Selenium WebDriver додалися нові
типи локаторів: partionalLinkText, tagName, name. Не підтримуються dom
локатори. У цій замітці я розписував типи локаторів в Selenium 1.0. Повний список локаторів в Selenium 2.0:
- By.id - як локатора використовується атрибут id (унікальний ідентифікатор) елемента сторінки;
- By.name - як локатора використовується атрибут name елемента сторінки;
- By.xpath - використовується для пошуку елемента по XPath виразу;
- By.tagName - пошук по імені HTML тега;
- By.className - пошук по CSS класу елемента;
- By.cssSelector - даний тип локаторів заснований на описах таблиць стилів (CSS);
- By.linkText - пошук посилання з зазначеним текстом;
- By.partionalLinkText - пошук по частині посилання з зазначеним текстом.
Для того, щоб почати розробляти авто тести на Selenium 2.0 під .Net потрібно завантажити звідси набір бібліотек для .Net. У викачаному архіві повинні знаходиться наступні бібліотеки: Castle.Core.dll,
Ionic.Zip.Reduced.dll, Newtonsoft.Json.Net35.dll,
Selenium.WebDriverBackedSelenium.dll, ThoughtWorks.Selenium.Core.dll,
WebDriver.dll, WebDriver.Support.dll. Дані бібліотеки потрібно
підключити до проекту. Якщо ви хочете писати тести на іншій мові
програмування, то початкову інструкцію, можна вивчити на офіційним сайті
розробників Selenium. Для запуску тестів, нам знадобитися встановити
NUnit. NUnit - це допоміжний framework для створення тестів.
Завантажити NUnit можна перейшовши за цим посиланням. Бібліотеки NUnit: nmock.dll. nunit.core.dll. nunit. framework.dll також потрібно підключити до проекту.
Отже, відкриваємо Visual
Studio і створюємо новий проект типу Class Library, додаємо згадані
вище бібліотеки. Після цього можна приступати до написання першого тесту.
Кроки нашого найпростішого тесту будуть наступними:
- Відкрити головну сторінку даного блогу, перевірити title сторінки;
- В поле "Пошук" внести значення "Selenium WebDriver";
- Натиснути на кнопку "Search Submit" (лупа);
- Перевірити результати пошуку.
Приклад тесту на Selenium WebDriver з використанням C #:
- Запускаємо раніше встановлений NUnit;
- У NUnit вибираємо "File -> Open Project ...";
- І в діалоговому вікні вказуємо шлях до .dll нашого тесту (... binDebugSeleniumTest.dll);
- Завантажуємо проект і натискає кнопку "Run" (її буде важко не помітити).
В результаті даних не
ітрих дій повинен запуститися написаний нами раніше авто-тест на
Selenium. Приблизно так має виглядати вікно NUnit-а з завантаженим
тестом:
В даному прикладі використовувалися наступні команди Selenium WebDriver:
Також розробниками Selenium 2.0 створений
план по переходу від Selenium 1.0 до Selenium 2.0 в режимі WebDriver.
План приблизно такий:
Ось ще приклад роботи на сумісністю WebDriver і Selenium RC взятий з офіційної документації до Selenium 2.0:
Я б хотів тільки зробити її ще краще) Помітив достатню кількість орфографічних помилок. (WebDriver до речі ще не обзавівся spellchecker'ом ?;)
Було б круто вбирати чисті світлі знання не вбиваючи в підкірку неправильне написання слів! Але як я вже сказав це дрібниця! Ви робите супер справа! Дякуємо)
спасибі за відгук, будемо щось думати, щоб не пропускати помилки
-50% до кінця місяця на корпоративні PHP Codeception тренінги від ФАУНДЕР тула
Умов начальника і не пропусти промокод at.info-codeception