top 25 selenium webdriver commands that you should know
Найкращі команди селену WebDriver - феноменальний посібник для тестувальників автоматизації
Selenium WebDriver - один з найпопулярніших засобів автоматизації веб-сайтів з відкритим кодом. Більшість моїх колег-тестувальників автоматизації віддають перевагу поєднанню WebDriver та Java.
У цьому посібнику я обговорю 25 команд, що регулярно використовуються Selenium WebDriver, а також їх відповідний синтаксис та прості приклади для легшого розуміння.

Що ви дізнаєтесь:
- Типи команд у WebDriver
- Топ 7 команд селену з деталями
- Список 25 найбільш популярних команд і прикладів WebDriver
- # 1) отримати ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) та натисніть ()
- # 4) isEnabled ()
- # 5) findElement (By, by) with sendKeys ()
- # 6) findElement (By, by) з getText ()
- # 7) Надіслати ()
- # 8) findElements (Автор, автор)
- # 9) findElements (By, by) з розміром ()
- # 10) pageLoadTimeout (час, одиниця)
- # 11) неявноWait ()
- # 12) untill () та visibilityOfElementLocated ()
- # 13) untill () та alertIsPresent ()
- # 14) getTitle ()
- # 15) Виберіть
- # 16) navigate ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () та accept (), dismiss () and sendKeys ()
- # 21) getWindowHandle () та getWindowHandles ()
- # 22) getConnection ()
- # 23) ПОТІМ
- # 24) assertEquals (), assertNotEquals (), assertTrue () та assertFalse ()
- # 25) close () і quit ()
- Висновок
- Рекомендована література
Типи команд у WebDriver
В останній підручник із селену , ми обговорили різні типи попереджень стикаються під час тестування веб-додатків та їх ефективних способів обробки. Ми довго обговорювали обидва типи сповіщень, тобто 'веб-оповіщення' та 'оповіщення на основі вікон'. Ми також ознайомили вас із ще однією утилітою на базі Java, яка називається “Робот-клас” для обробки спливаючих вікон на базі Windows.
Випереджаючи в ця серія підручників щодо Selenium WebDriver , ми б натискали на різні загальновживані та звичні команди Selenium WebDriver . Ми точно і коротко обговоримо кожну з цих команд Selenium, щоб зробити вас здатними ефективно використовувати ці команди щоразу, коли виникає ситуація.
Кожен робочий файл для автоматизації Java починається зі створення посилання на веб-браузер, який ми хочемо використовувати, як зазначено в синтаксисі нижче.

Існує кілька методів, доступних в інтерфейсі Webdriver. Доступ до цих методів здійснюється за допомогою змінної екземпляра водій у простому форматі driver.methodName (); . Всі ці проекти автоматизації включають виклик цих методів та порівняння та оцінку того, що вони насправді повертають.

Простіше кажучи, ми можемо класифікувати команди Webdriver як:
- Команди браузера,
- Отримати команди,
- Команди навігації,
- Команди Webelement,
- Команди дії та
- Команди результатів.
З контексту ручного тестування результат тесту, або PASS, або FAIL, визначається командами Result, які зазвичай порівнюють очікувані та фактичні результати, а решта - це етапи Testcase.
Топ 7 команд селену з деталями
Щоб мати приблизне уявлення, ми обговоримо наступні команди Selenium WebDriver та їх різні версії:
- отримати () методи
- Пошук посилань за linkText () і partLinkText ()
- Вибір декількох елементів у випадаючому меню
- Подання форми
- Обробка фреймів
- закрити () і вийти () методи
- Обробка винятків
# 1) get () Методи
| Команда WebDriver | Використання |
|---|---|
| getAttribute () | • Команда використовується для отримання значення вказаного атрибута • Команда вимагає одного рядкового параметра, який посилається на атрибут, значення якого ми прагнемо знати, і в результаті повертає значення рядка. driver.findElement (By.id ('findID')). getAttribute ('значення'); |
| отримати () | • Команда запускає новий браузер і відкриває вказану URL-адресу в екземплярі браузера • Команда приймає один параметр типу рядка, який зазвичай є URL-адресою тестованої програми • Для користувачів Selenium IDE команда може дуже нагадувати відкриту команду driver.get ('https://google.com'); |
| getClass () | Команда використовується для отримання об'єкта Class що представляє клас виконання цього об'єкта driver.getClass (); |
| getCurrentUrl () | • Команда використовується для отримання URL-адреси веб-сторінки, до якої користувач зараз переходить • Команда не вимагає жодного параметра і повертає значення рядка driver.getCurrentUrl (); |
| getPageSource () | • Команда використовується для отримання джерела сторінки веб-сторінки, до якої користувач зараз переходить • Команда не вимагає жодного параметра і повертає значення рядка • Команда може бути використана з різними рядковими операціями, наприклад, містить (), щоб встановити наявність вказаного рядкового значення boolean result = driver.getPageSource (). contains ('Рядок для пошуку'); |
| getTitle () | • Команда використовується для отримання заголовка веб-сторінки, над якою зараз працює користувач. Повертається нульовий рядок, якщо веб-сторінка не має заголовка • Команда не вимагає жодного параметра і повертає обрізане значення рядка Заголовок рядка = driver.getTitle (); |
| getText () | • Команда використовується для отримання внутрішнього тексту зазначеного веб-елемента • Команда не вимагає жодного параметра і повертає значення рядка • Це також одна з широко використовуваних команд для перевірки повідомлень, міток, помилок тощо на веб-сторінках. Текст рядка = driver.findElement (By.id ('Текст')). GetText (); |
| getWindowHandle () | • Команда використовується для вирішення ситуації, коли у нас є більше ніж одне вікно, з яким потрібно мати справу. • Команда допомагає нам перейти до нещодавно відкритого вікна та виконувати дії в новому вікні. Користувач також може повернутися до попереднього вікна, якщо він / вона бажає. приватний рядок winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
| getWindowHandles () | • Команда подібна до команди “getWindowHandle ()” з тією відмінністю, що вона допомагає мати справу з кількома вікнами, тобто коли нам доводиться мати справу з більш ніж 2 вікнами. |
Фрагмент коду для “getWindowHandles ()” наведено нижче:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };# 2) Розташування посилань за допомогою linkText () та delLinkText ()
Дозвольте нам отримати доступ до 'google.com' та 'abodeqa.com' за допомогою linkText () і partLinText () методи WebDriver.

До вищезгаданих посилань можна отримати доступ за допомогою таких команд:
водій .findElement (By.linkText ( “Google” )). натисніть ();
водій .findElement (By.linkText ( AbodeQA )). натисніть ();
Команда знаходить елемент за допомогою тексту посилання, а потім клацає на цьому елементі, і таким чином користувач буде перенаправлений на відповідну сторінку.
До вищезгаданих посилань також можна отримати доступ за допомогою таких команд:
водій .findElement (By.partialLinkText ( “Goo” )). натисніть ();
водій .findElement (By.partialLinkText ( “Обитель” )). натисніть ();
Наведені вище дві команди знаходять елементи на основі підрядка посилання, наданого в дужках, і, отже, partLinkText () знаходить веб-елемент із зазначеним підрядком, а потім клацає по ньому.
# 3) Вибір декількох елементів у випадаючому меню
Існує в основному два види випадаючих списків:
- Спадне меню одного вибору : Спадне меню, що дозволяє одночасно вибирати лише одне значення.
- Випадний список, що вибирається декількома параметрами : Спадне меню, що дозволяє одночасно вибирати кілька значень.
Розгляньте HTML-код нижче для випадаючого списку, який може одночасно вибрати кілька значень.
Red Green Yellow Grey
Фрагмент коду нижче ілюструє кілька виділень у спадному меню.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);# 4) Подання форми
Більшість або майже всі веб-сайти мають форми, які потрібно заповнити та подати під час тестування веб-програми. Користувач може зустріти кілька типів форм, таких як форма для входу, форма для реєстрації, форма для завантаження файлів, форма для створення профілю тощо.

У WebDriver користувач використовує метод, спеціально створений для подання форми. Користувач також може використовувати метод натискання, щоб натиснути кнопку «Відправити» як заміну кнопці «Надіслати».
Перегляньте фрагмент коду нижче щодо наведеної вище форми 'новий користувач':
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit(); Таким чином, як тільки елемент керування програмою знаходить метод submit, він знаходить елемент і запускає подати () метод на знайденому веб-елементі.
# 5) Обробка фреймів
При автоматизації веб-додатків можуть траплятися ситуації, коли нам потрібно мати справу з кількома кадрами у вікні. Таким чином, розробник тестового сценарію повинен фактично переключатися між різними кадрами або фреймами.
Вбудована абревіатура кадру як iframe використовується для вставки іншого документа в поточний документ HTML або просто веб-сторінки в іншу веб-сторінку, дозволяючи вкладання.
Розглянемо наступний HTML-код, що має внутрішній фрейм на веб-сторінці:
Software Testing Help - iframe session Наведений вище HTML-код ілюструє наявність вбудованого iframe в інший iframe. Таким чином, щоб мати доступ до дочірнього iframe, користувач повинен спочатку перейти до батьківського iframe. Після виконання необхідної операції від користувача може знадобитися повернутися до батьківського iframe, щоб мати справу з іншим елементом веб-сторінки.
Це неможливо, якщо користувач намагається отримати доступ до дочірнього iframe безпосередньо, не переходячи спочатку до батьківського iframe.
Виберіть iframe за ідентифікатором
водій .switchTo (). frame ( ' Ідентифікатор кадру ' );
Пошук iframe за допомогою tagName
Розміщуючи iframe, користувач може зіткнутися з деякими проблемами, якщо iframe не призначений стандартними властивостями. Складним процесом стає пошук кадру та перехід на нього. Щоб виправити ситуацію, користувач має змогу знайти iframe, використовуючи метод tagName, подібний тому, як ми знаходимо будь-який інший веб-елемент у WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName (“iframe”). get (0));
Вищевказана команда виявляє перший веб-елемент із зазначеним tagName і перемикається на цей iframe. 'Get (0) використовується для пошуку iframe зі значенням індексу.' Таким чином, у рядках з нашим HTML-кодом, наведений вище синтаксис коду призведе до того, що програма керування переключиться на “ParentFrame”.
Пошук iframe за допомогою індексу:
а) фрейм (індекс)
driver.switchTo (). frame (0);
б) кадр (назва кадру)
driver.switchTo (). frame (“назва кадру”);
в) фрейм (елемент WebElement)
Виберіть батьківське вікно
driver.switchTo (). defaultContent ();
Вищевказана команда повертає користувача до вихідного вікна, тобто з обох вбудованих фреймів.
# 6) методи close () та quit ()
У WebDriver є два типи команд для закриття екземпляра веб-браузера.
а) закрити () : Метод close () WebDriver закриває вікно веб-браузера, над яким зараз працює користувач, або ми можемо також сказати вікно, до якого в даний момент здійснює доступ WebDriver. Команда не вимагає жодного параметра і не повертає жодного значення.
б) вийти () : На відміну від методу close (), метод quit () закриває всі вікна, які програма відкрила. Як і метод close (), команда не вимагає жодного параметра і не повертає жодного значення.
Зверніться до наведених нижче фрагментів коду:
водій .close (); // закриває лише одне вікно, яке зараз доступне екземпляру WebDriver
водій .quit (); // закриває всі вікна, відкриті екземпляром WebDriver
# 7) Обробка винятків
Виняток становлять умови або ситуації, які несподівано зупиняють виконання програми.
Причинами таких умов можуть бути:
- Помилки, введені користувачем
- Помилки, створені програмістом
- Помилки, породжені фізичними ресурсами
Таким чином, для вирішення цих несподіваних умов було розроблено концепцію обробки винятків.
Щодо коду Java, який ми реалізуємо під час автоматизації веб-програми, може бути укладений у блок, який здатний забезпечити механізм обробки проти помилкових умов.
Виловлювання винятку
Щоб уловити виняток, ми використовуємо наведений нижче блок коду
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }Якщо будь-який виняток трапляється в блоці try / protected block, тоді управління виконанням перевіряє блок catch для відповідного типу винятку і передає йому виняток, не порушуючи виконання програми.
Кілька блоків лову
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }У наведеному вище коді виняток, швидше за все, буде перехоплений у першому блоці catch, якщо тип виключення відповідає. Якщо тип винятку не збігається, тоді виняток переходить до другого блоку catch і третього блоку catch і так далі, поки не будуть відвідані всі блоки catch.
Умови WebDriver та обробка винятків
Коли ми прагнемо перевірити наявність будь-якого елемента на веб-сторінці, використовуючи різні умовні команди WebDriver, WebDriver припускає, що веб-елемент присутній на веб-сторінці. Якщо веб-елемент відсутній на веб-сторінці, умовні команди видають “NoSuchElementPresentException”. Таким чином, щоб уникнути таких винятків із зупинки виконання програми, ми використовуємо механізми обробки винятків. Зверніться до фрагмента коду нижче:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); } Список 25 найбільш популярних команд і прикладів WebDriver
Нижче наведено перелік 25 найпоширеніших команд Webdriver, які повинен знати кожен тестер автоматизації.
Давайте детально розберемо ці команди.
Подальше читання => Підручник із селену WebDriver
# 1) отримати ()
Команда за допомогою get () відкриває URL-адресу в поточному браузері.
Наведена нижче команда відкриє вказану URL-адресу «https://www.softwaretestinghelp.com» у веб-переглядачі.
Синтаксис:
driver.get('https://www.softwaretestinghelp.com');Пояснення:
- Перейдіть до URL-адреси https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Команда, використовуючи getCurrentUrl (), щоб перевірити, чи правильна URL-адреса.
Наступна команда отримує поточну URL-адресу у форматі рядка.
Синтаксис:
створення Java-проекту в затемненні
driver.getCurrentUrl();Зазвичай ми використовуємо цей метод у командах, щоб перевірити, чи ми перейшли на потрібну сторінку, як очікувалося. Для цього ми повинні використовувати Assert, як показано нижче Приклад .
Синтаксис:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());Де очікується URL - це URL-адреса, яка очікується у форматі рядка.
Пояснення:
- Перевірте та переконайтеся, що завантажена URL-адреса залишається незмінною та завантажується правильна сторінка.
# 3) findElement (By, by) та натисніть ()
findElement (By, by) та натисніть (), щоб клацнути на будь-якому елементі веб-сторінки.
Метод findElement (By, by) здійснює пошук та знаходження першого елемента на поточній сторінці, який відповідає критеріям, заданим як параметр. Цей метод зазвичай використовується в командах для імітації дій користувача, таких як клацання, надсилання, введення тощо.
Наведена нижче команда виконує пошук і знаходить перший елемент на веб-сторінці з ідентифікатором «submit1» і клацає по ньому, якщо він не охоплений.
Синтаксис:
driver.findElement(By.id('submit1')).click();Елемент може бути розташований за допомогою Посвідчення особи , Ім'я , Клас Ім'я , Назва тегу , Текст посилання та Текст часткового посилання , Селектор CSS і X Шлях .
Пояснення:
- Шукайте потрібну кнопку Надіслати.
- Клацніть на кнопку.
Команда нижче вибирає елемент із вікна списку.
Синтаксис:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();Пояснення:
- Знайдіть і знайдіть елемент списку за ідентифікатором “name1”.
- Клацніть на цей елемент.
# 4) isEnabled ()
isEnabled (), щоб перевірити, увімкнено чи вимкнено елемент у Selenium WebDriver.
Для того, щоб перевірити, чи певний елемент увімкнено на веб-сторінці, ми використовуємо метод isEnabled ().
Синтаксис:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();Пояснення:
- Знаходить елемент на веб-сторінці відповідно до xpath і перевіряє, чи елемент увімкнено.
# 5) findElement (By, by) with sendKeys ()
findElement (By, by) з sendKeys () для введення в поля форми.
Перевірте перевірку форми, ввівши різні введені користувачем дані, які часто потрібні для тестування автоматизації. Ми використовуємо findElement (By, by) для пошуку полів і sendKeys () для введення деякого вмісту в поле, яке можна редагувати.
Наведена нижче команда використовує локатор імен, щоб знайти поле форми та ввести в нього “Aaron”.
Синтаксис:
driver.findElement(By.name('name')).sendkeys('Aaron');Пояснення:
- Шукайте у формі необхідне поле імені.
- Введіть у нього значення “Аарон”.
# 6) findElement (By, by) з getText ()
findElement (By, by) з getText () для зберігання значення цільового веб-елемента.
GetText () - це метод, який отримує внутрішній текст веб-елемента. Отримати текст - це текст усередині тегів HTML.
Наведений нижче код знаходить елемент із тегомName “select” і отримує текст всередині тегу та зберігає його у спадному меню, що випадає. Тепер String dropDown можна використовувати для подальших дій усередині програми.
Синтаксис:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();Пояснення:
- Шукайте необхідне поле у формі, яка має тегName “випадаючий1”.
- Візьміть текст всередині його HTML-тегу.
- Зберігайте текст у рядковому об'єкті 'DropDown'.
# 7) Надіслати ()
Подайте (), щоб надіслати веб-форму.
Метод click (), про який ми говорили вище, може бути використаний для натискання будь-яких посилань або кнопок. Submit () є кращою альтернативою click (), якщо елемент, який потрібно натиснути, є кнопкою submit. Кнопка 'Надіслати' знаходиться всередині тегу HTML 'form', а тип кнопки - 'submit' (не 'button').
Submit () полегшує життя завдяки автоматичному пошуку кнопки та методу, які можна додати до будь-якого іншого поля, наприклад імені чи адреси електронної пошти. У разі натискання ми повинні використовувати метод findElement (By, by) і вказати правильні локатори.
У деяких сценаріях, коли дія здійснюється за допомогою елементів, відмінних від кнопки, submit () працює, а натискання () ні.
Синтаксис:
driver.findElement(By.xpath('//input(@name='comments')')).submit();Пояснення:
- Знайти елемент у вказаному шляху x із назвою ‘коментарі’.
- Подайте форму.
# 8) findElements (Автор, автор)
findElements (By, by), щоб отримати список веб-елементів.
Іноді ми можемо захотіти надрукувати або виконати дію зі списком веб-елементів, таких як посилання або поля введення на веб-сторінці. У такому випадку ми використовуємо findElements (By, by).
Синтаксис:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));Пояснення:
- Список усіх веб-елементів із зазначеним xpath зберігається у списку веб-елементів allChoices.
# 9) findElements (By, by) з розміром ()
findElements (By, by) з size (), щоб перевірити наявність елемента.
findElements (By, by) можна використовувати для перевірки наявності елемента насправді на веб-сторінці.
Наведена нижче команда використовується, якщо ми хочемо перевірити наявність елемента з певним локатором на веб-сторінці. Якщо size ()! = 0, тоді елемент присутній.
Синтаксис:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;Пояснення:
- Елемент пошуку вказано в xpath з ідентифікатором ‘checkbox2’.
- Відповідно до розміру списку елементів, для логічного checkIfElementPresent буде встановлено значення TRUE або FALSE.
# 10) pageLoadTimeout (час, одиниця)
pageLoadTimeout (час, одиниця), щоб встановити час завантаження сторінки.
Іноді через проблеми із сервером або затримки мережі завантаження сторінки може зайняти більше, ніж зазвичай. Це може спричинити помилку в програмі. Щоб цього уникнути, ми встановлюємо час очікування, і pageLoadTimeout () є одним із таких методів. Зазвичай це відбувається за командою get ().
Синтаксис:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);Пояснення:
- Зачекайте 500 секунд, поки сторінка завантажиться.
# 11) неявноWait ()
implicitlyWait () встановити час очікування перед пошуком та визначенням веб-елемента.
Що станеться, якщо Webdriver намагається знайти елемент до того, як веб-сторінка завантажиться і елемент з’явиться? Буде видалено NoSuchElementExeption. Щоб цього уникнути, ми можемо додати команду, яка неявно чекає певний проміжок часу, перш ніж знаходити елемент.
Синтаксис:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);Пояснення:
- Неявно зачекайте 1000 секунд перед виконанням наступного рядка в коді.
# 12) untill () та visibilityOfElementLocated ()
untill () від WebdriverWait та visibilityOfElementLocated () від ExpectedConditions, щоб явно зачекати, поки елемент буде видно на веб-сторінці.
Обробляти випадки, коли елементу потрібно занадто багато часу, щоб бути видимим на веб-сторінці програмного забезпечення, застосовуючи неявне очікування, стає складно. У цьому випадку ми можемо написати коментар, щоб почекати, поки елемент з’явиться на веб-сторінці. Ця команда використовує комбінацію методу till () із класу WebdriverWait і методу visibilityOfElementLocated () із класу ExpectedConditions.
Синтаксис:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));Пояснення:
- Перший рядок говорить про те, скільки часу чекати, що становить 10 секунд.
- Друга умова говорить про очікувану умову, яку слід чекати. Тут це елемент із іменем ’у згаданому xpath.
# 13) untill () та alertIsPresent ()
untill () від WebdriverWait та alertIsPresent () від ExpectedConditions, щоб явно зачекати, поки не з’явиться попередження.
У деяких сценаріях нам потрібно чекати попереджень, щоб продовжити тест. У цьому випадку ми використовуємо команду за допомогою методу till () із класу WebdriverWait та методу alertIsPresent () із класу ExpectedConditions.
Будь ласка, перегляньте команду нижче:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );Пояснення:
- Перший рядок говорить, скільки часу чекати - це 10 секунд.
- Друга умова говорить про очікувану умову, яку слід чекати. Тут це спливаюче сповіщення.
# 14) getTitle ()
getTitle (), щоб отримати заголовок сторінки у веб-драйвері Selenium.
Синтаксис:
String title = driver.getTitle(); System.out.println(title);Зазвичай це використовується для друку заголовка у вихідних журналах.
Пояснення:
- Отримайте заголовок веб-сторінки та збережіть його в заголовку об’єкта String.
- Вивести значення, що зберігається в заголовку, у вихідні журнали.
# 15) Виберіть
Виберіть клас для вибору та скасування вибору значень зі спадного меню в Selenium WebDriver.
Ми часто маємо сценарії, пов’язані з випадаючими меню. Для цього використовуються методи з класу Select. Ми можемо використовувати selectByVisibleText (), selectByValue () або selectByIndex () відповідно до сценарію.
Синтаксис:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');Пояснення:
- Знайдіть спадне меню, використовуючи ідентифікатор 'select'.
- Виберіть видимий текст 'Apple' зі спадного меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')Пояснення:
- Знайдіть спадне меню за допомогою ідентифікатора 'select'.
- Виберіть текст зі значенням “Apple” зі спадного меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);Пояснення:
- Знайдіть спадне меню за допомогою ідентифікатора 'select'.
- Виберіть випадаючий елемент зі значенням індексу «1» зі спадного меню (Другий елемент).
Подібно до вибору, ми можемо скасувати вибір зі спадного меню, використовуючи подібні команди.
Будь ласка, перевірте команди:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');Пояснення:
- Знайдіть спадне меню за допомогою ідентифікатора 'select'.
- Зніміть виділений видимий текст 'Apple' зі спадного меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');Пояснення:
- Знайдіть спадне меню за допомогою ідентифікатора 'select'.
- Зніміть виділення тексту зі значенням 'Apple' зі спадного меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);Пояснення:
- Знайдіть спадне меню за допомогою ідентифікатора 'select'.
- Зніміть вибір випадаючого елемента зі значенням індексу «1» зі спадного меню (Другий елемент).
navigate () для переміщення між URL-адресами.
Ми часто бачимо сценарії, коли нам може знадобитися перейти з цільової URL-адреси, а потім повернутися назад або вперед. У таких випадках замість використання get () ми можемо використовувати navigate (). У Navigate ми можемо використовувати методи back () і forward (), не вказуючи URL-адреси.
Синтаксис:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();Пояснення:
- Перейдіть на https://www.softwaretestinghelp.com
- Перейти назад.
- Рухайтеся вперед.
# 17) getScreenshotAs ()
getScreenshotAs (), щоб зробити весь знімок екрана сторінки в Selenium WebDriver.
Це часто потрібно для збереження деталей вашої роботи або іноді для ручної перевірки результатів. Наведена нижче команда використовується для створення знімка екрана та збереження у вихідному файлі.
Синтаксис:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));Пояснення:
- Зробіть знімок екрана та збережіть файл на знімку об’єкта.
- Збережіть файл на диску D як shot1.png.
# 18) moveToElement ()
moveToElement () з класу Action для імітації ефекту наведення миші.
Є сценарії, коли нам потрібно навести курсор на веб-елементи, наприклад, на меню, щоб побачити підменю, посилання, щоб побачити зміни кольору тощо. У цих випадках ми використовуємо клас Дії. Погляньте на наведений нижче синтаксис класу Action.
Синтаксис:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();Пояснення
- Знайдіть і знайдіть веб-елемент з ідентифікатором div ‘mainmenu1’.
- Наведіть вказівник миші на елемент.
# 19) dragAndDrop ()
dragAndDrop () з класу 'Дії', щоб перетягнути елемент і перекинути його на інший елемент.
У деяких сценаріях ми можемо захотіти перетягувати елементи. Наприклад, перетягніть зображення на сцену. У цьому випадку ми можемо використовувати клас Дії.
У методі dragAndDrop ми передаємо два параметри: Source locator - елемент, який ми хочемо перетягнути, і Destination locator - елемент, до якого ми хочемо перейти.
Синтаксис:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();Пояснення:
- Знайдіть і знайдіть вихідний веб-елемент.
- Знайдіть і знайдіть веб-елемент призначення.
- Перетягніть вихідний елемент на елемент призначення.
# 20) switchTo () та accept (), dismiss () and sendKeys ()
switchTo () та accept (), dismiss () і sendKeys () з класу Alert, щоб переключитися на спливаючі сповіщення та обробляти їх.
Щоб переключитися на сповіщення, спливаючі вікна та обробляти їх, ми використовуємо комбінацію з перейти до() і accept (), dismiss () методи з класу Alert.
Синтаксис:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()Пояснення:
- Перейдіть у вікно попередження.
- Введіть “This Is Softwaretestinghelp” у сповіщенні.
- Прийміть попередження та закрийте його.
alert.dismiss () може використовуватися для відхилення попередження.
# 21) getWindowHandle () та getWindowHandles ()
getWindowHandle () та getWindowHandles () для обробки декількох вікон у Selenium WebDriver.
Як створити список об'єктів в Java - -
Є багато випадків, коли веб-програми мають багато фреймів або вікон.
Це в основному реклама або спливаючі вікна інформації. Ми можемо обробляти кілька вікон за допомогою обробників Windows. Webdriver зберігає унікальний ідентифікатор вікна для кожного вікна. Ми використовуємо цей ідентифікатор для їх обробки.
Синтаксис:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();Наведені вище команди використовуються для отримання ідентифікаторів вікон поточного вікна та всіх вікон відповідно. Будь ласка, перегляньте цикл нижче, щоб побачити, як ми можемо перейти до кожного вікна через цикл for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }Пояснення:
- Для кожного ідентифікатора дескриптора вікна з driver.getWindowHandles () перейдіть до цього ідентифікатора вікна.
# 22) getConnection ()
getConnection () від DriverManager для запуску підключення до бази даних.
Для того, щоб запустити підключення до бази даних, ми використовуємо getConnection із класу DriverManager.
Синтаксис:
DriverManager.getConnection(URL, 'username', 'password' )Пояснення:
- Підключіться до бази даних за допомогою URL-адреси та облікових даних.
# 23) ПОТІМ
POI для читання з файлів Excel.
Під час тестування на основі даних ми часто зберігаємо вхідні дані у файлі Excel і читаємо його. Для того, щоб зробити це у WebDriver, ми імпортуємо пакет POI, а потім використовуємо команду нижче.
Синтаксис:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);Пояснення:
- Створіть файл читання.
- Прочитайте файл.
# 24) assertEquals (), assertNotEquals (), assertTrue () та assertFalse ()
Стверджує за допомогою assertEquals (), assertNotEquals (), assertTrue () та assertFalse () для порівняння результатів.
Твердження використовуються для порівняння очікуваних та фактичних результатів. Пройти або не скласти тест зазвичай вирішується на підставі результатів тверджень. У автоматизації використовуються різні типи тверджень.
Синтаксис:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);Пояснення:
- У першій команді, коли очікуване та фактичне значення однакові, твердження передається без винятку. тобто якщо повідомлення 'Цей текст', тоді твердження проходить.
- У другій команді, коли очікувані та фактичні значення однакові, твердження не вдається, за винятком. тобто якщо повідомлення 'Цей текст', то твердження не вдається.
- У третій команді, якщо умова проходить, твердження проходить. тобто якщо результат<0, then the assertion passes.
- У четвертій команді, якщо умова проходить, твердження не вдається. тобто якщо результат<0, then the assertion fails.
# 25) close () і quit ()
close () та quit (), щоб закрити вікна та екземпляри драйверів.
Ці команди використовуються в кінці кожної програми автоматизації.
Синтаксис:
driver.close() driver.quit()Пояснення:
Перша команда закриває поточне вікно.
Друга команда виходить із цього екземпляра драйвера, закриваючи кожне пов'язане вікно, яке відкривається.
Висновок
У цьому посібнику ми представили різні загальновживані та надмірно використовувані команди WebDriver. Ми спробували пояснити команди на відповідних прикладах та фрагментах коду.
Я з усіх сил намагався пояснити найпопулярніші команди WebDriver, які ми регулярно використовуємо у своїй повсякденній роботі. Ці команди дозволять вам легко працювати з Selenium.
Сподіваюся, це було для вас цікавим та обізнаним.
Ви тестер автоматизації, який пробував будь-яку з наведених команд? Або ми пропустили будь-які команди, які ви використовуєте у наведеному вище списку?
Наступний підручник No18 : У наступному уроці ми обговоримо Веб-таблиці, фрейми та динамічні елементи які є важливою частиною будь-якого веб-проекту. Ми також розглянемо обробка винятків важлива тема більш докладно в одному з майбутніх підручників із селену.
Рекомендована література
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Вступ до Selenium WebDriver - Підручник з селену №8
- Як запустити Selenium WebDriver у різних популярних браузерах
- Впровадження нашого першого сценарію WebDriver - Підручник № 10 для Selenium WebDriver
- Поширені запитання щодо селену
- Як обробляти сповіщення / спливаючі вікна в Selenium WebDriver - Підручник з селену No16
- Підручник з селену GeckoDriver: Як використовувати GeckoDriver у проектах селену
- Неявне та явне очікування в Selenium WebDriver (типи очікувань селену)