Selenium Учебное пособие по C#: фреймворк NUnit с примером.

⚡ Умное резюме

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

  • 🔘 Набор инструментов: Visual Studio плюс Selenium WebDriver, NUnit и NUnit Test Adapter NuGet пакеты.
  • ☑️ Настройка проекта: Тип выходных данных должен быть «Библиотека классов», а не «Консольное приложение», иначе сборка завершится с ошибкой.
  • Атрибуты NUnit: SetUp открывает браузер, Test выполняет действия, TearDown закрывает его.
  • 🧪 Группы командования: Команды браузера, команды WebElement и команды выпадающего списка через SelectElement.
  • 🇧🇷 Локаторы: Функция FindElement принимает стратегии выбора элементов на основе XPath и CSS для каждого взаимодействия с элементом.
  • Исполнение: Test Explorer запускает класс и сообщает о каждом результате как о пройденном или не пройденном.

Selenium Автоматизация тестирования на C# с использованием фреймворка NUnit.

Selenium Обзор

Selenium это веб-сайт с открытым исходным кодом Автоматизация тестирования Инструмент, который поддерживает несколько браузеров и несколько операционных систем. Он позволяет тестировщикам использовать несколько языков программирования, таких как Java, С#, PythonRuby, PHP и Perl для написания автоматизированных тестов. Если вы новичок в этом инструменте, начните с... Selenium учебник и WebDriver против Selenium сравнение RC.

Selenium Предоставляет элемент управления для браузера; язык программирования, который вы используете для его управления, предоставляет структуру.

Обзор С#

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

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

Перед подключением Selenium Это помогает распознать структуру простой программы на C#.

Базовый синтаксис 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».
  • Первый оператор кода включает в нашу программу пространство имен «Система». Системное пространство имен определяет фундаментальные классы и события, используемые в 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»

Страница загрузок Visual Studio с кнопкой бесплатной загрузки Community Edition.

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

Установщик Visual Studio запрашивает права администратора.

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

Всплывающее окно приветствия установщика Visual Studio с кнопкой «Продолжить»

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

Установщик Visual Studio загружает файлы компонентов.

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

Установите флажки для

  • Universal Windows Разработка платформы
  • Разработка настольных приложений .NET

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

Экран загрузки Visual Studio с использованием Universal Windows Разработка платформы и настольных приложений на .NET пройдена.

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

Индикатор выполнения установки Visual Studio для каждого выбранного компонента

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

Установщик Visual Studio запрашивает перезагрузку компьютера.

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

Всплывающее окно входа в Visual Studio со ссылкой «Не сейчас, может быть, позже».

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

  • Выберите цветовую тему по своему вкусу
  • Нажмите кнопку «Запустить Visual Studio».

Экран первого запуска Visual Studio для выбора цветовой темы.

Шаг 8) Появится экран Visual Studio «Начало работы».

Экран «Начало работы» в Visual Studio после завершения установки.

Создайте новый проект в Visual Studio:

Шаг 1) В меню «Файл» нажмите «Создать» > «Проект».

В меню «Файл» Visual Studio, выберите пункты «Создать» и «Проект».

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

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

Диалоговое окно «Новый проект» в консольном приложении Visual C# и проект с именем Guru99

Шаг 3) Экран ниже отобразится после успешного создания проекта.

Редактор Visual Studio отображает только что созданный объект. Guruпроект консоли 99

Настройте Visual Studio с помощью Selenium Вебдрайвер:

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

Путь к N в меню «Инструменты»uGet Менеджер пакетов и управление NuGet Пакеты для решения

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

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

NuGet менеджер пакетов с Selenium В результатах поиска и в поле «Проект» стоит галочка.

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

NuGet Всплывающее окно подтверждения перед Selenium пакет установлен

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

NuGet подтверждающий вывод Selenium WebDriver успешно установлен.

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

Меню «Инструменты» вновь открыто в точке N.uGet Менеджер пакетов для установки NUnit

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

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

NuGet Менеджер пакетов с выбранным для установки результатом поиска NUnit

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

NuGet Всплывающее окно подтверждения перед установкой фреймворка NUnit.

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

NuGet Сообщение, подтверждающее завершение установки фреймворка NUnit.

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

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

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

Текущие пакеты: современный проект устанавливает NUnit3TestAdapter вместе с Microsoft.NET.Test.Sdkи более старшие NUnitTestAdapter Этот пакет больше не поддерживается. В .NET (Core) весь проект можно создать с помощью генератора кода. dotnet new nunit, которая добавит для вас все три пакета.

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

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

NuGet Менеджер пакетов ищет NUnitTestAdapter в выбранном проекте.

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

NuGet Сообщение, подтверждающее завершение установки тестового адаптера NUnit.

Обе части установлены, поэтому следующим шагом будет их объединение в единый тестовый класс.

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) Появится окно создания класса.

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

Диалоговое окно «Добавить новый элемент» используется для присвоения имени новому классу теста NUnit.

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

Пустой файл класса C#, созданный в редакторе Visual Studio.

Шаг 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) Нажмите «Создать» -> «Создать решение».

В Visual Studio выберите пункт «Сборка решения» в меню «Сборка».

ПРИМЕЧАНИЕ: При сборке вы можете получить сообщение об ошибке типа «Не содержит статического «основного» метода, подходящего для точки входа».

Ошибка сборки: отсутствует статический метод main, подходящий в качестве точки входа.

Для решения этой проблемы перейдите в раздел «Проект» > «Свойства» и измените тип вывода на «Библиотека классов». По умолчанию установлено значение «Консольное приложение».

В свойствах проекта тип вывода изменен на «Библиотека классов».

Шаг 5) После успешной сборки нам нужно открыть окно обозревателя тестов. Нажмите «Тест» -> Windows -> Обозреватель тестов

Проверьте путь в меню, чтобы Windows и Test Explorer

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

Test Explorer отображает список доступных тестов с возможностью запуска выбранных тестов.

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

В обозревателе тестов отображается результат теста NUnit, отмеченный как пройденный.

Успешно пройденный тест доказывает работоспособность водопровода. Далее следует терминология, которую вы будете использовать при написании тестов.

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

C# использует интерфейс 'IWebDriver' для взаимодействия с браузером. Ниже приведены категории команд, доступных с Selenium в C #.

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

Теперь в этом 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:

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

  1. Перейти к демоверсии 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. Перейдите в Guru99 демонстрационная страница – 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. Перейдите в Guru99 демонстрационная страница – 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. Перейдите в Guru99 демонстрационная страница – https://demo.guru99.com/test/guru99home/
  2. Нажмите на SAP ссылка.
  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");
                        
        }
    }
}

Часто задаваемые вопросы (FAQ)

Используйте SeleniumWebDriver 4.x с NUnit 3.14 или NUnit 4, а также NUnit3TestAdapter и Microsoft.NET.Test.Sdk.NUnit 4 ориентирован на .NET Framework 4.6.2 или .NET 6 и более поздние версии, поэтому перед обновлением с указанных выше пакетов проверьте целевую платформу вашего проекта.

№ Selenium 4.6 представил Selenium Менеджер, который загружает и сопоставляет драйвер браузера во время выполнения. Передача папки драйвера в конструктор ChromeDriver по-прежнему работает, но это необходимо только в том случае, если нужно закрепить конкретную сборку драйвера.

Неявное ожидание устанавливает единый таймаут для каждого поиска элемента на протяжении всего времени существования экземпляра IWebDriver. Явное ожидание нацелено на один элемент и одно условие, например, кликабельность или видимость, поэтому оно быстрее завершается с ошибкой и более точно описывает намерение.

Да. Пометьте сборку как Parallelizable, и NUnit будет запускать фикстуры параллельно. Каждый тест должен иметь свой собственный экземпляр IWebDriver, поэтому создавайте драйвер в SetUp, а не используйте общее статическое поле, иначе параллельные тесты будут конфликтовать в одном и том же браузере.

NUnit и MSTest используют атрибуты и группируют тесты с помощью TestFixture или TestClass. xUnit не требует атрибута класса и был разработан с учетом параллельной обработки. Все три работают в обозревателе тестов; NUnit остается наиболее распространенным выбором для Selenium Работает на C#.

Инструменты искусственного интеллекта предлагают локаторы на основе снимка страницы, исправляют селекторы, которые перестали работать после изменения пользовательского интерфейса, и преобразуют написанный тестовый пример в черновой вариант метода NUnit. Рассматривайте каждое предложение как черновик и проверяйте утверждения перед фиксацией.

Да. Получив комментарий с описанием сценария, Copilot формирует элементы SetUp, Test и TearDown и предлагает вызовы FindElement из окружающего кода. Проверьте локаторы на рабочей странице, поскольку сгенерированные селекторы определяются автоматически, а не проверяются.

Selenium Playwright обладает самой широкой поддержкой распределенных вычислений, облачных технологий и языков программирования, а также очень большим существующим тестовым парком, поэтому этот навык остается востребованным. Playwright предлагает более быстрое выполнение и встроенную функцию ожидания. Многие команды разработчиков .NET используют оба инструмента, совместно используя один и тот же NUnit-раннер и отчеты.

Подведем итог этой публикации следующим образом: