Selenium Учебное пособие по C#: фреймворк NUnit с примером.
⚡ Умное резюме
Selenium WebDriver управляет браузерами из C# через интерфейс IWebDriver, а NUnit предоставляет атрибуты тестов, утверждения и отчеты Test Explorer, которые превращают эти шаги в браузере в повторяемые автоматизированные тесты.

Selenium Обзор
Selenium это веб-сайт с открытым исходным кодом Автоматизация тестирования Инструмент, который поддерживает несколько браузеров и несколько операционных систем. Он позволяет тестировщикам использовать несколько языков программирования, таких как Java, С#, PythonRuby, PHP и Perl для написания автоматизированных тестов. Если вы новичок в этом инструменте, начните с... Selenium учебник и WebDriver против Selenium сравнение RC.
Selenium Предоставляет элемент управления для браузера; язык программирования, который вы используете для его управления, предоставляет структуру.
Обзор С#
C# — объектно-ориентированный язык программирования, созданный на основе C++ и JavaC# позволяет разработчикам создавать приложения с помощью Visual Studio на платформе .NET. Ниже перечислены основные особенности C#. C#.
- Это объектно-ориентированный язык программирования.
- Он поддерживает разработку консольных, оконных и веб-приложений.
- Он предоставляет такие функции, как инкапсуляция, наследование и полиморфизм.
Перед подключением Selenium Это помогает распознать структуру простой программы на C#.
Базовый синтаксис C#
Программа на C# должна содержать следующие разделы.
- Объявление пространства имен
- Классы
- Атрибуты и методы класса
- Основной метод
- Программные заявления
Пример-
Ниже приведен образец 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класс. Обратите внимание, что точка входа написана правильно.Mainс заглавной буквой M в настоящем C#; строчная букваmainВ приведенном выше примере это не будет рассматриваться как точка входа.
После того, как синтаксис стал понятен, следующим шагом будет установка инструментов, которые компилируют и запускают эти тесты.
Selenium с настройкой C#
Как настроить Visual Studio с помощью Selenium Вебдрайвер:
Теперь в этом Selenium Учебник по C#. Давайте изучим пошаговый процесс настройки Visual Studio. Selenium Вебдрайвер:
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 Вебдрайвер:
Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения
Шаг 2) На следующем экране
- Найдите Selenium на результирующем экране
- Выберите первый результат поиска
- Установите флажок проекта
- Нажмите "Установить".
Шаг 3) Нажмите кнопку «ОК» во всплывающем окне.
Шаг 4) Приведенное ниже сообщение появится после успешной установки пакета.
Selenium Теперь можно открыть браузер, но пока нельзя сообщить, пройден ли тест. Это задача фреймворка для модульного тестирования.
NUnit Framework: обзор
NUnit - это Модульное тестирование фреймворк, поддерживаемый Visual Studio и Selenium WebDriver. NUnit — наиболее широко используемый фреймворк для модульного тестирования приложений .NET. NUnit представляет результаты тестов в удобочитаемом формате и позволяет тестировщику отлаживать автоматизированные тесты.
Для его использования необходимо установить NUnit Framework и NUnit Test Adapter в Visual Studio.
Шаги по установке NUnit Framework
Теперь в этом Selenium с помощью руководства по C# давайте изучим процесс установки платформы NUnit:
Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения
Шаг 2) В следующем окне
- Искать NUnit
- Выберите результат поиска
- Выберите проект
- Нажмите «Установить».
Шаг 3) Появится всплывающее окно ниже. Нажмите кнопку «ОК».
Шаг 4) Приведенное ниже сообщение появится после завершения установки.
Действия по загрузке тестового адаптера NUnit
Теперь в этом руководстве по NUnit мы рассмотрим шаги по загрузке тестового адаптера NUnit:
Обратите внимание, что приведенные ниже шаги работают только для 32-битных компьютеров. Для 64-битных компьютеров вам необходимо загрузить «Тестовый адаптер NUnit3», выполнив тот же процесс, который указан ниже.
Текущие пакеты: современный проект устанавливает NUnit3TestAdapter вместе с Microsoft.NET.Test.Sdkи более старшие NUnitTestAdapter Этот пакет больше не поддерживается. В .NET (Core) весь проект можно создать с помощью генератора кода. dotnet new nunit, которая добавит для вас все три пакета.
Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения. На этом экране
- Поиск NUnitTestAdapter
- Нажмите «Результат поиска».
- Выберите проект
- Нажмите «Установить».
Шаг 2) Нажмите «ОК» во всплывающем окне подтверждения. После завершения установки вы увидите следующее сообщение:
Обе части установлены, поэтому следующим шагом будет их объединение в единый тестовый класс.
Selenium и инфраструктура NUnit
Интеграция Selenium с платформой NUnit позволяет тестировщику различать различные классы тестов. NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после запуска теста.
Фреймворк NUnit можно интегрировать с Selenium путем создания тестового класса NUnit и запуска этого класса с использованием фреймворка NUnit. Java Эквивалент этого шаблона описан в JUnit Учебное пособие по фреймворкуКроме того, обсуждается альтернатива NUnit для .NET в Visual Studio. TestNG для Selenium.
Ниже приведены шаги в этом Selenium Учебное пособие по платформе C# необходимо для создания и запуска тестового класса с использованием платформы NUnit.
Шаги по созданию класса NUnit Test в Selenium:
Шаг 1) В обозревателе решений щелкните правой кнопкой мыши проект > Добавить > Класс
Шаг 2) Появится окно создания класса.
- Укажите имя класса
- Нажмите кнопку Добавить
Шаг 3) Появится экран ниже.
Шаг 4) Добавьте следующий код в созданный класс. Обратите внимание, что вам необходимо указать расположение файла 'chromedriver.exe' во время инициализации драйвера Chrome. Selenium 4.6 и более поздние корабли Selenium Менеджер, которая автоматически определяет подходящий драйвер, поэтому new ChromeDriver() Форма без аргумента пути является текущей — указанный ниже путь сохранен, поскольку он соответствует скриншотам.
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) После успешной сборки нам нужно открыть окно обозревателя тестов. Нажмите «Тест» -> Windows -> Обозреватель тестов
Шаг 6) Откроется окно обозревателя тестов со списком доступных тестов. Щелкните правой кнопкой мыши обозреватель тестов и выберите «Выполнить выбранные тесты».
Шаг 7) Selenium необходимо открыть браузер с указанным именем. URL и закройте браузер. Статус тестового случая в окне обозревателя тестов изменится на «Пройдено».
Успешно пройденный тест доказывает работоспособность водопровода. Далее следует терминология, которую вы будете использовать при написании тестов.
Selenium Команды WebDriver в C#
C# использует интерфейс 'IWebDriver' для взаимодействия с браузером. Ниже приведены категории команд, доступных с Selenium в C #.
- Команды браузера
- Команды веб-элемента
- Команды раскрывающегося списка
Теперь в этом Selenium Учебное пособие по C#, давайте изучим Selenium Команды WebDriver выполняются одна за другой. Java Аналогичные примеры демонстрируются в этом первый скрипт WebDriver прохождение.
Приведённые ниже команды остаются актуальными. IWebDriver поверхность в Selenium 4, поэтому синтаксис сохраняется без изменений.
Команды браузера:
Ниже приведен список команд браузера, доступных в 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 представляет собой любой элемент на веб-странице. Они обозначаются HTML-тегами. Кнопки, текстовые поля, ссылки, изображения, таблицы и фреймы — все это WebElement. OperaДействия с этими элементами запускаются посредством IWebElement интерфейс. Для взаимодействия с веб-элементом мы сначала... найти элемент на странице, а затем выполнить над ней операцию. Доступные стратегии описаны в локаторы в SeleniumДля идентификации можно использовать инструменты разработчика браузера — или устаревшие дополнения Firebug и Firepath, которые показаны на скриншотах ниже. XPath веб-элемента.
Ниже перечислены команды WebElement, доступные в C#.
| Имя команды | Описание | Синтаксис |
|---|---|---|
| Нажмите команду | Эта команда используется для щелчка по веб-элементу. Чтобы элемент был кликабельным, он должен быть виден на веб-странице. Эта команда также используется для операций с флажками и переключателями. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click();
|
| Очистить команду | Эта команда специально используется для очистки существующего содержимого текстовых полей. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
element.Clear();
|
| Команда ОтправитьКлючи | Эта команда используется для ввода значения в текстовые поля. Вводимое значение должно быть передано в качестве параметра |
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-форме кнопка с типом «Отправить». В то время как команда щелчка нажимает на любую кнопку, команда отправки нажимает только кнопки с типом отправки. |
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) |
Примечание к приведенным выше образцам: В таблице воспроизведен исходный синтаксис. В текущей версии Selenium В .NET члены кода написаны в стиле Pascal Case. element.Submit() и element.GetCssValue("color") - а также GetCssValue принимает в качестве аргумента имя свойства CSS.
Команды раскрывающегося списка:
Операции с раскрывающимся списком в 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 | Эта команда используется для определения того, является ли выпадающий список списком с множественным выбором; такой список позволяет пользователю выбирать более одного варианта одновременно. Эта команда возвращает логическое значение (Boolean). |
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"); |
Четыре приведенных ниже скрипта используют указанные выше команды для работы с... Guru99 демонстрационных сайтов. Каждый из них представляет собой полноценный, запускаемый класс NUnit-теста.
Code образцы
Пример 1. Щелкните ссылку с помощью локатора XPATH:
Сценарий тестирования:
- Перейти к демоверсии 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:
Сценарий тестирования:
- Перейдите в 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("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:
Сценарий тестирования:
- Перейдите в 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("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. Выберите значение в раскрывающемся списке:
Сценарий тестирования:
- Перейдите в Guru99 демонстрационная страница – https://demo.guru99.com/test/guru99home/
- Нажмите на SAP ссылка.
- Введите данные в текстовые поля имени и электронной почты.
- Выберите значение из раскрывающегося списка «Курс».
- Закройте браузер
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"); } } }
































