Selenium Підручник C# із прикладом NUnit

Selenium огляд

Selenium є відкритим кодом, веб Тестування автоматизації інструмент, який підтримує кілька браузерів і кілька операційних систем. Це дозволяє тестувальникам використовувати кілька мов програмування, наприклад Java, C#, Python, .Net, Ruby, PHP і Perl для кодування автоматизованих тестів.

Огляд C#

C# — це об’єктно-орієнтована мова програмування, яка походить від C++ та Java. C# дозволяє розробникам створювати програми за допомогою Visual Studio на платформі .Net. Нижче наведено ключові особливості C#.

  1. Це об'єктно-орієнтована мова програмування
  2. Він підтримує розробку консольних, віконних і веб-додатків
  3. Він надає такі функції, як інкапсуляція, успадкування та поліморфізм.

Базовий синтаксис C#

Програма на C# повинна містити такі розділи

  1. Оголошення простору імен
  2. Класи
  3. Атрибути та методи класу
  4. Основний метод
  5. Програмні заяви

Приклад

Нижче наведено зразок 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

Налаштувати Visual Studio за допомогою Selenium веб-драйвер

Крок 2) Відкрийте завантажений exe. Натисніть «Так», якщо буде запропоновано надати права адміністратора.

Налаштувати Visual Studio за допомогою Selenium веб-драйвер

Крок 3) З’явиться наведене нижче спливаюче вікно. Натисніть кнопку «Продовжити».

Налаштувати Visual Studio за допомогою Selenium WebDrive

Файли будуть завантажені, як показано у спливаючому вікні нижче.

Налаштувати Visual Studio за допомогою Selenium WebDrive

Крок 4) На наступному екрані

Установіть прапорці для

  • Universal Windows Розробка платформи
  • Розробка робочого столу .Net

Натисніть «Встановити».

Налаштувати Visual Studio за допомогою Selenium WebDrive

Дочекайтеся завершення встановлення кожного компонента. Файли мають розмір 16 ГБ, і це займе час.

Налаштувати Visual Studio за допомогою Selenium WebDrive

Крок 5) Відобразиться наведене нижче спливаюче вікно. Натисніть кнопку «Перезапустити».

Налаштувати Visual Studio за допомогою Selenium WebDrive

Крок 6) Після перезавантаження комп’ютера знайдіть «Visual Studio» у меню «Пуск» і натисніть на результат пошуку. З’явиться таке спливаюче вікно. Натисніть посилання «Не зараз, можливо пізніше», якщо у вас немає облікового запису.

Налаштувати Visual Studio за допомогою Selenium WebDrive

Крок 7) На наступному екрані

  • Виберіть кольорову тему на свій смак
  • Натисніть кнопку «Запустити Visual Studio»

Налаштувати Visual Studio за допомогою Selenium WebDrive

Крок 8) З’явиться екран Visual Studio «Початок роботи».

Налаштувати Visual Studio за допомогою Selenium WebDrive

Створіть новий проект у Visual Studio:

Крок 1) У меню «Файл» виберіть «Створити» > «Проект».

Створіть новий проект у Visual Studio

Крок 2) На наступному екрані

  1. Виберіть опцію «Visual C#»
  2. Натисніть Консольний додаток (.Net Framework)
  3. Введіть ім'я як «Guru99»
  4. натисніть OK

Створіть новий проект у Visual Studio

Крок 3) Після успішного створення проекту відобразиться наведений нижче екран.

Створіть новий проект у Visual Studio

Налаштуйте Visual Studio за допомогою Selenium WebDriver:

Крок 1) Перейдіть до Інструменти -> NuGet Менеджер пакетів -> Керувати NuGet Пакети для рішення

Налаштувати Visual Studio за допомогою Selenium веб-драйвер

Крок 2) На наступному екрані

  1. Шукати Selenium на екрані результату
  2. Виберіть перший результат пошуку
  3. Поставте прапорець біля проекту
  4. Натисніть «Встановити»

Налаштувати Visual Studio за допомогою Selenium веб-драйвер

Крок 3) Натисніть кнопку «ОК» у спливаючому вікні

Налаштувати Visual Studio за допомогою Selenium веб-драйвер

Крок 4) Після успішного встановлення пакета з’явиться наведене нижче повідомлення.

Налаштувати Visual Studio за допомогою Selenium веб-драйвер

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 Пакети для рішення

Встановіть NUnit Framework

Крок 2) У наступному вікні

  1. Знайдіть NUnit
  2. Виберіть результат пошуку
  3. Виберіть Проект
  4. Натисніть "Встановити"

Встановіть NUnit Framework

Крок 3) З’явиться наведене нижче спливаюче вікно. Натисніть кнопку «ОК».

Встановіть NUnit Framework

Крок 4) Після завершення встановлення з’явиться наведене нижче повідомлення.

Встановіть NUnit Framework

Кроки для завантаження тестового адаптера NUnit

Тепер у цьому підручнику NUnit ми розглянемо кроки для завантаження тестового адаптера NUnit:

Зауважте, що наведені нижче кроки працюють лише для 32-розрядних машин. Для 64-розрядних комп’ютерів вам потрібно завантажити «Тестовий адаптер NUnit3», виконавши той самий процес, який описано нижче.

Крок 1) Перейдіть до Інструменти ->NuGet Менеджер пакетів -> Керувати NuGet Пакети для рішення. На цьому екрані

  1. Пошук NUnitTestAdapter
  2. Натисніть Результат пошуку
  3. Виберіть Проект
  4. Натисніть "Встановити"

Завантажте тестовий адаптер NUnit

Крок 2) Натисніть OK у спливаючому вікні підтвердження. Після завершення встановлення ви побачите таке повідомлення-

Завантажте тестовий адаптер NUnit

Selenium і фреймворк NUnit

Інтеграція селену з фреймворком NUnit дозволяє тестувальнику розрізняти різні класи тестів. NUnit також дозволяє тестувальникам використовувати такі анотації, як SetUp, Test і TearDown, щоб виконувати дії до та після запуску тесту.

Фреймворк NUnit можна інтегрувати з Selenium шляхом створення тестового класу NUnit і запуску тестового класу за допомогою NUnit framework.

Нижче описані кроки Selenium Посібник C# framework потрібен для створення та запуску тестового класу за допомогою NUnit framework.

Кроки для створення тестового класу NUnit Selenium:

Крок 1) У провіднику рішень клацніть правою кнопкою миші на проекті > Додати > Клас

Створіть тестовий клас NUnit Selenium

Крок 2) З'явиться вікно створення класу.

  1. Дайте назву класу
  2. Натисніть кнопку Додати

Створіть тестовий клас NUnit Selenium

Крок 3) З’явиться наведений нижче екран.

Створіть тестовий клас NUnit Selenium

Крок 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) Натисніть «Створити» -> «Створити рішення»

Створіть тестовий клас NUnit Selenium

ПРИМІТКА: Ви можете отримати помилку на кшталт «Не містить статичного 'основного' методу, придатного для точки входу» під час створення

Створіть тестовий клас NUnit Selenium

Щоб вирішити цю проблему, перейдіть до «Проект» > «Властивості» та змініть тип виводу на «Бібліотека класів». За умовчанням встановлено «Консольний додаток».

Створіть тестовий клас NUnit Selenium

Крок 5) Після успішного збирання нам потрібно відкрити вікно Test Explorer. Натисніть Тест -> Windows -> Провідник тестів

Створіть тестовий клас NUnit Selenium

Крок 6) Відкриється вікно Test Explorer зі списком доступних тестів. Клацніть правою кнопкою миші на Test Explorer і виберіть Run Selected Tests

Створіть тестовий клас NUnit Selenium

Крок 7) Selenium необхідно відкрити браузер із вказаною URL-адресою та закрити браузер. Статус тесту буде змінено на «Пройшов» у вікні Test Explorer.

Створіть тестовий клас NUnit Selenium

Selenium Команди WebDriver у C#

C# використовує інтерфейс «IWebDriver» для взаємодії з браузером. Нижче наведено категорії команд, доступних за допомогою Selenium в C #.

  1. Команди браузера
  2. Команди веб-елемента
  3. Випадаючі команди

Зараз у 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:

Тестовий сценарій:

  1. Перейдіть на веб-сторінку Demo Guru99 – https://demo.guru99.com/test/guru99home/
  2. Розгорніть вікно до максимуму
  3. Клацніть на меню «Тестування».
  4. Закрийте браузер
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:

Тестовий сценарій:

  1. Перейдіть на демонстраційну сторінку Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Введіть дані в текстове поле електронної пошти
  3. Натисніть кнопку реєстрації
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:

Тестовий сценарій:

  1. Перейдіть на демонстраційну сторінку Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Введіть дані в текстове поле електронної пошти
  3. Натисніть кнопку реєстрації
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: виберіть значення в спадному списку:

Тестовий сценарій:

  1. Перейдіть на демонстраційну сторінку Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Натисніть на SAP link
  3. Введіть дані в текстові поля імені та електронної пошти
  4. Виберіть значення зі спадного меню Курс
  5. Закрийте браузер
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 і команди, що випадають.