Selenium Підручник C# із прикладом NUnit
Selenium огляд
Selenium є відкритим кодом, веб Тестування автоматизації інструмент, який підтримує кілька браузерів і кілька операційних систем. Це дозволяє тестувальникам використовувати кілька мов програмування, наприклад Java, C#, Python, .Net, Ruby, PHP і Perl для кодування автоматизованих тестів.
Огляд C#
C# — це об’єктно-орієнтована мова програмування, яка походить від C++ та Java. C# дозволяє розробникам створювати програми за допомогою Visual Studio на платформі .Net. Нижче наведено ключові особливості C#.
- Це об'єктно-орієнтована мова програмування
- Він підтримує розробку консольних, віконних і веб-додатків
- Він надає такі функції, як інкапсуляція, успадкування та поліморфізм.
Базовий синтаксис C#
Програма на C# повинна містити такі розділи
- Оголошення простору імен
- Класи
- Атрибути та методи класу
- Основний метод
- Програмні заяви
Приклад
Нижче наведено зразок Selenium Приклад програми C# для друку тексту "Guru99" на системній консолі.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Пояснення:
- Простір імен у наведеному вище Selenium Приклад C# — це сукупність кількох класів. Кожен простір імен має бути оголошений за допомогою ключового слова 'using'.
- Перший оператор коду включає простір імен «System» у нашу програму. Системний простір імен визначає основні класи та події, які використовуються в C#. Простір імен, який буде використовуватися, залежить від вимог програми.
- Другий оператор оголошує простір імен “FirstProgram” для класу “DemoPrint”. Файл AC# може містити кілька класів в одному просторі імен.
- Третій оператор містить оголошення класу. Клас може містити кілька атрибутів і кілька методів.
- Четвертий оператор містить оголошення методу Main. Основний метод є точкою входу для кожного класу.
- Останній оператор - це синтаксис C#, який використовується для виведення оператора на консоль. WriteLine — це метод класу 'Console.
Selenium з налаштуванням C#
Як налаштувати Visual Studio за допомогою Selenium WebDriver:
Тепер у цьому Selenium Посібник C#, давайте покроково вивчимо процес налаштування Visual Studio Selenium WebDriver:
Visual Studio — це інтегроване середовище розробки (IDE), яке використовується розробниками для створення програм на кількох платформах, таких як Windows, Android, iOS і хмарні програми.
Крок 1) Перейдіть до URL-адреси
https://visualstudio.microsoft.com/downloads/ і натисніть на 'Безкоштовне завантаження' кнопка, що відображається на вкладці «Спільнота» Visual Studio
Крок 2) Відкрийте завантажений exe. Натисніть «Так», якщо буде запропоновано надати права адміністратора.
Крок 3) З’явиться наведене нижче спливаюче вікно. Натисніть кнопку «Продовжити».
Файли будуть завантажені, як показано у спливаючому вікні нижче.
Крок 4) На наступному екрані
Установіть прапорці для
- Universal Windows Розробка платформи
- Розробка робочого столу .Net
Натисніть «Встановити».
Дочекайтеся завершення встановлення кожного компонента. Файли мають розмір 16 ГБ, і це займе час.
Крок 5) Відобразиться наведене нижче спливаюче вікно. Натисніть кнопку «Перезапустити».
Крок 6) Після перезавантаження комп’ютера знайдіть «Visual Studio» у меню «Пуск» і натисніть на результат пошуку. З’явиться таке спливаюче вікно. Натисніть посилання «Не зараз, можливо пізніше», якщо у вас немає облікового запису.
Крок 7) На наступному екрані
- Виберіть кольорову тему на свій смак
- Натисніть кнопку «Запустити Visual Studio»
Крок 8) З’явиться екран Visual Studio «Початок роботи».
Створіть новий проект у Visual Studio:
Крок 1) У меню «Файл» виберіть «Створити» > «Проект».
Крок 2) На наступному екрані
- Виберіть опцію «Visual C#»
- Натисніть Консольний додаток (.Net Framework)
- Введіть ім'я як «Guru99»
- натисніть OK
Крок 3) Після успішного створення проекту відобразиться наведений нижче екран.
Налаштуйте Visual Studio за допомогою Selenium WebDriver:
Крок 1) Перейдіть до Інструменти -> NuGet Менеджер пакетів -> Керувати NuGet Пакети для рішення
Крок 2) На наступному екрані
- Шукати Selenium на екрані результату
- Виберіть перший результат пошуку
- Поставте прапорець біля проекту
- Натисніть «Встановити»
Крок 3) Натисніть кнопку «ОК» у спливаючому вікні
Крок 4) Після успішного встановлення пакета з’явиться наведене нижче повідомлення.
NUnit Framework: огляд
NUnit це Unit Testing фреймворк, що підтримується Visual Studio та Selenium WebDriver. NUnit є найбільш широко використовуваною структурою модульного тестування для програм .Net. NUnit представляє результати тесту в зручному для читання форматі та дозволяє тестувальнику налагодити автоматизовані тести.
Нам потрібно інсталювати NUnit Framework і NUnit Test Adapter у Visual Studio, щоб використовувати їх.
Кроки для встановлення NUnit Framework
Тепер у цьому Selenium за допомогою підручника з C#, давайте дізнаємося процес встановлення фреймворку NUnit:
Крок 1) Перейдіть до Інструменти -> NuGet Менеджер пакетів -> Керувати NuGet Пакети для рішення
Крок 2) У наступному вікні
- Знайдіть NUnit
- Виберіть результат пошуку
- Виберіть Проект
- Натисніть "Встановити"
Крок 3) З’явиться наведене нижче спливаюче вікно. Натисніть кнопку «ОК».
Крок 4) Після завершення встановлення з’явиться наведене нижче повідомлення.
Кроки для завантаження тестового адаптера NUnit
Тепер у цьому підручнику NUnit ми розглянемо кроки для завантаження тестового адаптера NUnit:
Зауважте, що наведені нижче кроки працюють лише для 32-розрядних машин. Для 64-розрядних комп’ютерів вам потрібно завантажити «Тестовий адаптер NUnit3», виконавши той самий процес, який описано нижче.
Крок 1) Перейдіть до Інструменти ->NuGet Менеджер пакетів -> Керувати NuGet Пакети для рішення. На цьому екрані
- Пошук NUnitTestAdapter
- Натисніть Результат пошуку
- Виберіть Проект
- Натисніть "Встановити"
Крок 2) Натисніть OK у спливаючому вікні підтвердження. Після завершення встановлення ви побачите таке повідомлення-
Selenium і фреймворк NUnit
Інтеграція селену з фреймворком NUnit дозволяє тестувальнику розрізняти різні класи тестів. NUnit також дозволяє тестувальникам використовувати такі анотації, як SetUp, Test і TearDown, щоб виконувати дії до та після запуску тесту.
Фреймворк NUnit можна інтегрувати з Selenium шляхом створення тестового класу NUnit і запуску тестового класу за допомогою NUnit framework.
Нижче описані кроки Selenium Посібник C# framework потрібен для створення та запуску тестового класу за допомогою NUnit framework.
Кроки для створення тестового класу NUnit Selenium:
Крок 1) У провіднику рішень клацніть правою кнопкою миші на проекті > Додати > Клас
Крок 2) З'явиться вікно створення класу.
- Дайте назву класу
- Натисніть кнопку Додати
Крок 3) З’явиться наведений нижче екран.
Крок 4) Додайте наступний код до створеного класу. Зверніть увагу, що під час ініціалізації драйвера chrome вам потрібно вказати розташування файлу «chromdriver.exe».
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Firefox; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class Guru99Demo { IWebDriver driver; [SetUp] public void startBrowser() { driver = new ChromeDriver("D:\\3rdparty\\chrome"); } [Test] public void test() { driver.Url = "http://www.google.co.in"; } [TearDown] public void closeBrowser() { driver.Close(); } } }
Крок 4) Натисніть «Створити» -> «Створити рішення»
ПРИМІТКА: Ви можете отримати помилку на кшталт «Не містить статичного 'основного' методу, придатного для точки входу» під час створення
Щоб вирішити цю проблему, перейдіть до «Проект» > «Властивості» та змініть тип виводу на «Бібліотека класів». За умовчанням встановлено «Консольний додаток».
Крок 5) Після успішного збирання нам потрібно відкрити вікно Test Explorer. Натисніть Тест -> Windows -> Провідник тестів
Крок 6) Відкриється вікно Test Explorer зі списком доступних тестів. Клацніть правою кнопкою миші на Test Explorer і виберіть Run Selected Tests
Крок 7) Selenium необхідно відкрити браузер із вказаною URL-адресою та закрити браузер. Статус тесту буде змінено на «Пройшов» у вікні Test Explorer.
Selenium Команди WebDriver у C#
C# використовує інтерфейс «IWebDriver» для взаємодії з браузером. Нижче наведено категорії команд, доступних за допомогою Selenium в C #.
- Команди браузера
- Команди веб-елемента
- Випадаючі команди
Зараз у Selenium C Sharp підручник, давайте вивчимо Selenium Команди WebDriver одна за одною
Команди браузера:
Нижче наведено список команд браузера, доступних у C# з Selenium.
Назва команди | Опис | синтаксис |
---|---|---|
Команда Url | Ця команда використовується для відкриття вказаної URL-адреси в браузері. |
driver.Url = "https://www.guru99.com" |
Команда заголовка | Ця команда використовується для отримання назви веб-сторінки, яка зараз відкрита |
String title = driver.Title |
Команда PageSource | Ця команда використовується для отримання вихідного коду веб-сторінки, яка зараз відкрита. |
String pageSource = driver.PageSource |
Закрити команду | Ця команда використовується для закриття нещодавно відкритого екземпляра браузера. |
driver.Close(); |
Вийти з команди | Ця команда використовується для закриття всіх відкритих екземплярів браузера |
driver.Quit(); |
Команда «Назад». | Ця команда використовується для переходу до попередньої сторінки історії браузера. |
driver.Navigate().Back(); |
Команда вперед | Ця команда використовується для переходу до наступної сторінки історії браузера. |
driver.Navigate().Forward() |
Команда «Оновити». | Ця команда використовується для оновлення браузера. |
driver.Navigate().Refresh() |
Команди Webelement
Webelement представляє всі елементи веб-сторінки. Вони представлені тегами HTML. Кожна кнопка, текстове поле, посилання, зображення, таблиця та фрейм підпадають під Webelements. Operaна веб-елементах можна запустити за допомогою інтерфейсу IWebelement. Щоб взаємодіяти з Webelement, нам потрібно знайти елемент на веб-сторінці, а потім виконати над ним операції. Для ідентифікації можна використовувати такі інструменти, як Firebug і Firepath Xpath компанії Webelement.
Нижче наведено список команд Webelement, доступних у C#.
Назва команди | Опис | синтаксис |
---|---|---|
Натисніть команду | Ця команда використовується для клацання на Webelement. Щоб елемент можна було натиснути, він має бути видимим на веб-сторінці. Ця команда також використовується для операцій із прапорцями та перемикачами. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click(); |
Очистити команду | Ця команда спеціально використовується для очищення наявного вмісту текстових полів. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Clear(); |
Команда SendKeys | Ця команда використовується для введення значення в текстові поля. Значення, яке потрібно ввести, має бути передано як параметр |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
Відображена команда | Ця команда використовується для визначення того, чи відображається певний елемент на веб-сторінці. Ця команда повертає логічне значення; true або false залежно від видимості веб-елемента. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
Увімкнена команда | Ця команда використовується, щоб визначити, чи ввімкнено певний веб-елемент на веб-сторінці. Ця команда повертає логічне значення; істинне чи хибне в результаті. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
Вибрана команда | Ця команда використовується, щоб визначити, чи вибрано певний веб-елемент. Ця команда використовується для прапорців, перемикачів і операцій вибору. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
Надіслати команду: | Ця команда подібна до команди клацання. Різниця полягає в тому, чи має форма HTML кнопку з типом Надіслати. Тоді як команда click натискає будь-яку кнопку, команда submit натискає лише кнопки з типом submit. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit(); |
Текстова команда | Ця команда повертає внутрішній текст Webelement. У результаті ця команда повертає рядкове значення. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
Команда TagName | Ця команда повертає тег HTML веб-елемента. Він повертає рядкове значення як результат. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
Команда GetCSSValue: | Цей метод використовується для повернення кольору веб-елемента у вигляді рядка rgba (червоний, зелений, синій і альфа). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; Вихід– Якщо колір елемента червоний, вихід буде rgba(255,0,0,1) |
Випадаючі команди:
Випадаючі операції в C# можна виконати за допомогою класу SelectElement.
Нижче наведено різні операції зі спадним меню, доступні в C#.
Назва команди | Опис | синтаксис |
---|---|---|
Команда SelectByText | Ця команда вибирає опцію спадного списку на основі тексту опції. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
Команда SelectByIndex | Ця команда використовується для вибору параметра на основі його індексу. Індекс спадного списку починається з 0. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
Команда SelectByValue | Ця команда використовується для вибору опції на основі її значення. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
Параметри команди | Ця команда використовується для отримання списку параметрів, які відображаються у спадному меню. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); List<IWebelement> options = select. Options; int size = options.Count; for(int i=0;i<options.size();i++) { String value = size.elementAt(i).Text; Console.writeLine(value); } Наведений вище код друкує всі параметри на консолі в розкривному списку. |
Команда IsMultiple | Ця команда використовується для визначення того, чи спадне меню є розкривним списком із кількома виборами; Розкривне меню з декількома виборами дає змогу користувачеві вибирати кілька варіантів одночасно. Ця команда повертає логічне значення. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
Команда DeSelectAll | Ця команда використовується в спадних меню з кількома виборами. Це очищає параметри, які вже були вибрані. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
Команда DeSelectByIndex | Ця команда скасовує виділення вже вибраного значення за допомогою його індексу. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
Команда DeSelectByValue | Ця команда скасовує виділення вже вибраного значення, використовуючи його значення. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
Команда DeSelectByText | Ця команда скасовує виділення вже вибраного значення за допомогою його тексту. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
Зразки коду
Приклад 1: Клацніть посилання за допомогою XPATH Locator:
Тестовий сценарій:
- Перейдіть на веб-сторінку Demo Guru99 – https://demo.guru99.com/test/guru99home/
- Розгорніть вікно до максимуму
- Клацніть на меню «Тестування».
- Закрийте браузер
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("D:\\3rdparty\\chrome"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a")); link.Click(); m_driver.Close(); } } }
Приклад 2: Введення даних у текстBox і натисніть кнопку за допомогою локатора XPATH:
Тестовий сценарій:
- Перейдіть на демонстраційну сторінку Guru 99 – https://demo.guru99.com/test/guru99home/
- Введіть дані в текстове поле електронної пошти
- Натисніть кнопку реєстрації
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); // Store locator values of email text box and sign up button IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']")); IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']")); emailTextBox.SendKeys("test123@gmail.com"); signUpButton.Click(); } } }
Приклад 3: Введення даних у текстBox і натисніть кнопку за допомогою локатора CSS:
Тестовий сценарій:
- Перейдіть на демонстраційну сторінку Guru 99 – https://demo.guru99.com/test/guru99home/
- Введіть дані в текстове поле електронної пошти
- Натисніть кнопку реєстрації
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); // Store locator values of email text box and sign up button IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]")); IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]")); emailTextBox.SendKeys("test123@gmail.com"); signUpButton.Click(); } } }
Приклад 4: виберіть значення в спадному списку:
Тестовий сценарій:
- Перейдіть на демонстраційну сторінку Guru 99 – https://demo.guru99.com/test/guru99home/
- Натисніть на SAP link
- Введіть дані в текстові поля імені та електронної пошти
- Виберіть значення зі спадного меню Курс
- Закрийте браузер
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Support.UI; namespace Guru99Demo { class TestSelect { IWebDriver m_driver; [Test] public void selectDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']")); var selectTest = new SelectElement(course); // Select a value from the dropdown selectTest.SelectByValue("sap-abap"); } } }
Підсумки
- Для того щоб використовувати Selenium WebDriver із C#, потрібно інсталювати Visual Studio.
- NUnit — це платформа модульного тестування, яка підтримується Visual Studio та Selenium веб-драйвер
- Нам потрібно інсталювати NUnit Framework і NUnit Test Adapter у Visual Studio, щоб використовувати їх.
- Фреймворк NUnit можна інтегрувати з Selenium шляхом створення тестового класу NUnit і запуску тестового класу за допомогою NUnit framework.
- NUnit також дозволяє тестувальникам використовувати такі анотації, як SetUp, Test і TearDown, щоб виконувати дії до та після запуску тесту.
- Selenium Команди WebDriver можна розділити на команди браузера, команди Webelement і команди, що випадають.