Учебное пособие по Selenium C# с примером NUnit

Обзор селена

Selenium — это веб-версия с открытым исходным кодом. Автоматизация тестирования инструмент, который поддерживает несколько браузеров и несколько операционных систем. Он позволяет тестировщикам использовать несколько языков программирования, таких как Java, C#, Python, .Net, Ruby, PHP и Perl, для написания автоматических тестов.

Обзор С#

C# — объектно-ориентированный язык программирования, созданный на основе C++ и Java. C# позволяет разработчикам создавать приложения, используя Visual Studio на платформе .Net. Следующееwing являются ключевыми особенностями C#.

  1. Это объектно-ориентированный язык программирования.
  2. Он поддерживает разработку консолей, windows и веб-приложения
  3. Он предоставляет такие функции, как инкапсуляция, наследование и полиморфизм.

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

Программа на C# должна содержать следующееwing разделах

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

Пример-

Ниже приведен пример программы Selenium C# для печати текста «Guru99» на системной консоли.

using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
    Console.WriteLine("Guru99");
	}
  }
}

Объяснение:

  • Пространство имен в приведенном выше примере Selenium C# представляет собой коллекцию нескольких классов. Каждое пространство имен должно быть объявлено с использованием ключевого слова «using».
  • Первый оператор кода включает в нашу программу пространство имен «Система». Системное пространство имен определяет фундаментальные классы и события, используемые в 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 WebDriver

Шаг 2) Откройте скачанный exe. Нажмите «Да», если вас спросят о правах администратора.

  Visual Studio С помощью Selenium WebDriver

Шаг 3) Появится всплывающее окно ниже. Нажмите кнопку «Продолжить».

  Visual Studio С помощью Selenium WebDrive

Файлы будут загружены, как показано во всплывающем окне ниже.

  Visual Studio С помощью Selenium WebDrive

Шаг 4) На следующем экране

Выберите чекboxдля

  • Юниверсал Windows Разработка платформы
  • Разработка настольных компьютеров .Net

Нажмите «Установить».

  Visual Studio С помощью Selenium WebDrive

Дождитесь завершения установки каждого компонента. Размер файлов составляет 16 ГБ, и это займет время.

  Visual Studio С помощью Selenium WebDrive

Шаг 5) Появится всплывающее окно ниже. Нажмите кнопку «Перезапустить».

  Visual Studio С помощью Selenium WebDrive

Шаг 6) После перезапуска машины найдите «Visual Studio» в меню «Пуск» и нажмите на результат поиска. Следующееwing появится всплывающее окно. Нажмите «Не сейчас, возможно». later», если у вас нет существующей учетной записи.

  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) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения

  Visual Studio С помощью Selenium WebDriver

Шаг 2) На следующем экране

  1. Найдите Selenium на появившемся экране.
  2. Выберите первый результат поиска
  3. Проверьте проверку проектаbox
  4. Нажмите "Установить".

  Visual Studio С помощью Selenium WebDriver

Шаг 3) Нажмите кнопку «ОК» во всплывающем окне.

  Visual Studio С помощью Selenium WebDriver

Шаг 4) Приведенное ниже сообщение появится после успешной установки пакета.

  Visual Studio С помощью Selenium WebDriver

NUnit Framework: обзор

NUnit - это Модульное тестирование рамки, поддерживаемые Visual Studio и Selenium WebDriver. NUnit — наиболее широко используемая среда модульного тестирования для приложений .Net. NUnit представляет результаты тестов в читаемом формате и позволяет тестировщику отлаживать автоматические тесты.

Нам нужно установить NUnit Framework и тестовый адаптер NUnit на Visual Studio для того, чтобы использовать его.

Шаги по установке NUnit Framework

Теперь в этом уроке по Selenium с C# давайте изучим процесс установки платформы NUnit:

Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения

Установите NUnit Framework

Шаг 2) В следующем окне

  1. Искать NUnit
  2. Выберите результат поиска
  3. Выберите проект
  4. Нажмите «Установить».

Установите NUnit Framework

Шаг 3) Появится всплывающее окно ниже. Нажмите кнопку «ОК».

Установите NUnit Framework

Шаг 4) Приведенное ниже сообщение появится после завершения установки.

Установите NUnit Framework

Действия по загрузке тестового адаптера NUnit

Теперь в этом руководстве по NUnit мы рассмотрим шаги по загрузке тестового адаптера NUnit:

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

Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения. На этом экране

  1. Поиск NUnitTestAdapter
  2. Нажмите «Результат поиска».
  3. Выберите проект
  4. Нажмите «Установить».

Скачать тестовый адаптер NUnit

Шаг 2) Нажмите «ОК» во всплывающем окне подтверждения. После завершения установки вы увидите следующееwing сообщение-

Скачать тестовый адаптер NUnit

Фреймворк Selenium и NUnit

Интеграция Selenium с платформой NUnit позволяет тестировщику различать различные классы тестов. NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после запуска теста.

Платформу NUnit можно интегрировать с Selenium, создав тестовый класс NUnit и запустив тестовый класс с использованием платформы NUnit.

Следующие шаги в этом руководстве по платформе Selenium C# необходимы для создания и запуска тестового класса с использованием платформы NUnit.

Шаги по созданию класса NUnit Test в Selenium:

Шаг 1) В обозревателе решений щелкните правой кнопкой мыши проект > Добавить > Класс.

Создайте тестовый класс NUnit в Selenium

Шаг 2) Появится окно создания класса.

  1. Укажите имя класса
  2. Нажмите кнопку Добавить

Создайте тестовый класс NUnit в Selenium

Шаг 3) Появится экран ниже.

Создайте тестовый класс NUnit в Selenium

Шаг 4) Добавить подпискуwing код в созданный класс. Обратите внимание, что вам необходимо указать местоположение файла «chromdriver.exe» во время инициализации драйвера Chrome.

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) После успешной сборки нам нужно открыть окно обозревателя тестов. Нажмите «Тест» -> Windows -> Обозреватель тестов

Создайте тестовый класс NUnit в Selenium

Шаг 6) Откроется окно обозревателя тестов со списком доступных тестов. Щелкните правой кнопкой мыши обозреватель тестов и выберите «Выполнить выбранные тесты».

Создайте тестовый класс NUnit в Selenium

Шаг 7) Selenium должен открыть браузер с указанным URL-адресом и закрыть браузер. Статус тестового набора будет изменен на «Пройден» в окне обозревателя тестов.

Создайте тестовый класс NUnit в Selenium

Команды Selenium WebDriver на C#

C# использует интерфейс IWebDriver для взаимодействия с браузером. Следующееwing — это категория команд, доступных в Selenium в C#.

  1. Команды браузера
  2. Команды веб-элемента
  3. Команды раскрывающегося списка

Теперь в уроке Selenium C Sharp давайте поочередно изучим команды Selenium WebDriver.

Команды браузера:

Фоллоwing — это список команд браузера, доступных на 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()

Команды веб-элемента

Веб-элемент представляет все элементы веб-страницы. Они представлены HTML-тегами. На каждой из кнопок текстboxes, ссылки, изображения, таблицы и фреймы относятся к категории Webelements. Операции с веб-элементами можно запускать с помощью интерфейса IWebelement. Чтобы взаимодействовать с веб-элементом, нам нужно найти элемент на веб-странице и затем выполнить над ним операции. Такие инструменты, как Firebug и Firepath, можно использовать для идентификации Xpath компании Вебемент.

Фоллоwing — это список команд Webelement, доступных на C#.

Имя команды Описание Синтаксис
Нажмите команду Эта команда используется для щелчка по веб-элементу. Чтобы элемент был кликабельным, он должен быть виден на веб-странице. Эта команда используется для проверкиbox и операции с переключателями, а также.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Очистить команду Эта команда специально используется для очистки существующего содержимого текста.boxх годов.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Команда ОтправитьКлючи Эта команда используется для ввода значения в текст. boxэс. Вводимое значение должно быть передано в качестве параметра
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;
Выбранная команда Эта команда используется для определения того, выбран ли конкретный веб-элемент. Эта команда используется для проверкиboxes, переключатели и выберите операции.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
Отправить команду: Эта команда аналогична команде щелчка. Разница заключается в том, есть ли в HTML-форме кнопка с типом «Отправить». В то время как команда щелчка нажимает на любую кнопку, команда отправки нажимает только кнопки с типом отправки.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Текстовая команда Эта команда возвращает внутренний текст веб-элемента. В результате эта команда возвращает строковое значение.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
Команда имени тега Эта команда возвращает 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.

Фоллоwing — это различные операции раскрывающегося списка, доступные в 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();
Команда «Отменить выбор» Эта команда используется в раскрывающихся списках с множественным выбором. Он очищает уже выбранные параметры.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
Команда Деселектбииндекс Эта команда отменяет выбор уже выбранного значения, используя его индекс.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
Команда Деселектбивалуе Эта команда отменяет выбор уже выбранного значения, используя его значение.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
Команда Деселектбитекст Эта команда отменяет выбор уже выбранного значения, используя его текст.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Примеры кода

Пример 1. Щелкните ссылку с помощью локатора XPATH:

Сценарий тестирования:

  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. Введите данные в электроннуюmail текст box
  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. Введите данные в электроннуюmail текст box
  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
  3. Введите данные в имя и электронную почту.mail текст boxes
  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 и Селен веб-драйвер
  • Нам нужно установить NUnit Framework и тестовый адаптер NUnit на Visual Studio для того, чтобы использовать его.
  • Платформу NUnit можно интегрировать с Selenium, создав тестовый класс NUnit и запустив тестовый класс с использованием платформы NUnit.
  • NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после запуска теста.
  • Команды Selenium WebDriver можно разделить на команды браузера, команды Webelement и команды раскрывающегося списка.