Selenium Учебное пособие по C# с примером NUnit
Selenium Обзор
Selenium это веб-сайт с открытым исходным кодом Автоматизация тестирования Инструмент, который поддерживает несколько браузеров и несколько операционных систем. Он позволяет тестировщикам использовать несколько языков программирования, таких как Java, С#, Python, .Net, Ruby, PHP и Perl для написания автоматических тестов.
Обзор С#
C# — объектно-ориентированный язык программирования, созданный на основе C++ и Java. C# позволяет разработчикам создавать приложения с использованием Visual Studio на платформе .Net. Ниже приведены основные особенности C#.
- Это объектно-ориентированный язык программирования.
- Он поддерживает разработку консольных, оконных и веб-приложений.
- Он предоставляет такие функции, как инкапсуляция, наследование и полиморфизм.
Базовый синтаксис C#
Программа на C# должна содержать следующие разделы
- Объявление пространства имен
- Классы
- Атрибуты и методы класса
- Основной метод
- Программные заявления
Пример-
Ниже приведен образец Selenium Пример программы C# для печати текста «Guru99» на системной консоли.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Объяснение:
- Пространство имен в приведенном выше примере Selenium Пример C# представляет собой набор из нескольких классов. Каждое пространство имен должно быть объявлено с использованием ключевого слова «using».
- Первый оператор кода включает в нашу программу пространство имен «Система». Системное пространство имен определяет фундаментальные классы и события, используемые в C#. Используемое пространство имен зависит от требований программы.
- Второй оператор объявляет пространство имен FirstProgram для класса DemoPrint. Файл AC# может содержать несколько классов в одном пространстве имен.
- Третий оператор включает объявление класса. Класс может содержать несколько атрибутов и несколько методов.
- Четвертый оператор включает объявление метода Main. Основной метод — это точка входа выполнения для каждого класса.
- Последний оператор — это синтаксис C#, используемый для вывода оператора на консоль. WriteLine — это метод класса Console.
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) Приведенное ниже сообщение появится после успешной установки пакета.
NUnit Framework: обзор
NUnit - это Модульное тестирование фреймворк, поддерживаемый Visual Studio и Selenium WebDriver. NUnit — наиболее широко используемый фреймворк модульного тестирования для приложений .Net. NUnit представляет результаты тестирования в удобном для чтения формате и позволяет тестировщику отлаживать автоматизированные тесты.
Чтобы использовать его, нам необходимо установить NUnit Framework и тестовый адаптер NUnit в Visual Studio.
Шаги по установке NUnit Framework
Теперь в этом Selenium с помощью руководства по C# давайте изучим процесс установки платформы NUnit:
Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения
Шаг 2) В следующем окне
- Искать NUnit
- Выберите результат поиска
- Выберите проект
- Нажмите «Установить».
Шаг 3) Появится всплывающее окно ниже. Нажмите кнопку «ОК».
Шаг 4) Приведенное ниже сообщение появится после завершения установки.
Действия по загрузке тестового адаптера NUnit
Теперь в этом руководстве по NUnit мы рассмотрим шаги по загрузке тестового адаптера NUnit:
Обратите внимание, что приведенные ниже шаги работают только для 32-битных компьютеров. Для 64-битных компьютеров вам необходимо загрузить «Тестовый адаптер NUnit3», выполнив тот же процесс, который указан ниже.
Шаг 1) Перейдите в Инструменты -> N.uGet Диспетчер пакетов -> Управление NuGet Пакеты для решения. На этом экране
- Поиск NUnitTestAdapter
- Нажмите «Результат поиска».
- Выберите проект
- Нажмите «Установить».
Шаг 2) Нажмите «ОК» во всплывающем окне подтверждения. После завершения установки вы увидите следующее сообщение:
Selenium и инфраструктура NUnit
Интеграция Selenium с платформой NUnit позволяет тестировщику различать различные классы тестов. NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после запуска теста.
Фреймворк NUnit можно интегрировать с Selenium создав тестовый класс NUnit и запустив его с использованием платформы NUnit.
Ниже приведены шаги в этом Selenium Учебное пособие по платформе C# необходимо для создания и запуска тестового класса с использованием платформы NUnit.
Шаги по созданию класса NUnit Test в Selenium:
Шаг 1) В обозревателе решений щелкните правой кнопкой мыши проект > Добавить > Класс.
Шаг 2) Появится окно создания класса.
- Укажите имя класса
- Нажмите кнопку Добавить
Шаг 3) Появится экран ниже.
Шаг 4) Добавьте следующий код в созданный класс. Обратите внимание, что вам необходимо указать местоположение файла «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) Нажмите «Создать» -> «Создать решение».
ПРИМЕЧАНИЕ: При сборке вы можете получить сообщение об ошибке типа «Не содержит статического «основного» метода, подходящего для точки входа».
Чтобы решить эту проблему, перейдите в «Проект» > «Свойства» и измените тип вывода на «Библиотека классов». По умолчанию установлено «Консольное приложение».
Шаг 5) После успешной сборки нам нужно открыть окно обозревателя тестов. Нажмите «Тест» -> Windows -> Обозреватель тестов
Шаг 6) Откроется окно обозревателя тестов со списком доступных тестов. Щелкните правой кнопкой мыши обозреватель тестов и выберите «Выполнить выбранные тесты».
Шаг 7) Selenium необходимо открыть браузер с указанным URL-адресом и закрыть браузер. Статус тестового набора будет изменен на «Пройден» в окне обозревателя тестов.
Selenium Команды WebDriver в C#
C# использует интерфейс 'IWebDriver' для взаимодействия с браузером. Ниже приведены категории команд, доступных с Selenium в C #.
- Команды браузера
- Команды веб-элемента
- Команды раскрывающегося списка
Теперь в Selenium Учебное пособие по C Sharp, давайте изучим Selenium Команды WebDriver одна за другой
Команды браузера:
Ниже приведен список команд браузера, доступных в C#. Selenium.
Имя команды | Описание | Синтаксис |
---|---|---|
URL-команда | Эта команда используется для открытия указанного URL-адреса в браузере. |
driver.Url = "https://www.guru99.com" |
Название команды | Эта команда используется для получения заголовка веб-страницы, которая открыта в данный момент. |
String title = driver.Title |
Команда PageSource | Эта команда используется для получения исходного кода веб-страницы, которая открыта в данный момент. |
String pageSource = driver.PageSource |
Закрыть команду | Эта команда используется для закрытия недавно открытого экземпляра браузера. |
driver.Close(); |
Выйти из команды | Эта команда используется для закрытия всех открытых экземпляров браузера. |
driver.Quit(); |
Команда «Назад» | Эта команда используется для перехода на предыдущую страницу истории браузера. |
driver.Navigate().Back(); |
Передовая команда | Эта команда используется для перехода к следующей странице истории браузера. |
driver.Navigate().Forward() |
Обновить команду | Эта команда используется для обновления браузера. |
driver.Navigate().Refresh() |
Команды веб-элемента
Webelement представляет все элементы на веб-странице. Они представлены тегами HTML. Каждая из кнопок, текстовых полей, ссылок, изображений, таблиц и фреймов попадает под Webelements. Operations на веб-элементах можно вызвать с помощью интерфейса IWebelement. Чтобы взаимодействовать с Webelement, нам нужно найти элемент на веб-странице, а затем выполнить над ним операции. Такие инструменты, как 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) |
Команды раскрывающегося списка:
Операции с раскрывающимся списком в 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(); |
Команда «Отменить выбор» | Эта команда используется в раскрывающихся списках с множественным выбором. Он очищает уже выбранные параметры. |
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:
Сценарий тестирования:
- Перейдите на веб-страницу Demo Guru99 – https://demo.guru99.com/test/guru99home/
- Увеличить окно
- Нажмите на меню «Тестирование».
- Закройте браузер
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("D:\\3rdparty\\chrome"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a")); link.Click(); m_driver.Close(); } } }
Пример 2: Ввод данных в текстBox и нажмите кнопку, используя локатор XPATH:
Сценарий тестирования:
- Перейдите на демо-страницу Guru 99 – https://demo.guru99.com/test/guru99home/
- Введите данные в текстовое поле электронной почты
- Нажмите кнопку «Зарегистрироваться»
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); // Store locator values of email text box and sign up button IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']")); IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']")); emailTextBox.SendKeys("test123@gmail.com"); signUpButton.Click(); } } }
Пример 3: Ввод данных в текстBox и нажмите кнопку, используя локатор CSS:
Сценарий тестирования:
- Перейдите на демо-страницу Guru 99 – https://demo.guru99.com/test/guru99home/
- Введите данные в текстовое поле электронной почты
- Нажмите кнопку «Зарегистрироваться»
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); // Store locator values of email text box and sign up button IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]")); IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]")); emailTextBox.SendKeys("test123@gmail.com"); signUpButton.Click(); } } }
Пример 4. Выберите значение в раскрывающемся списке:
Сценарий тестирования:
- Перейдите на демо-страницу Guru 99 – https://demo.guru99.com/test/guru99home/
- Нажмите на SAP ссылке.
- Введите данные в текстовые поля имени и электронной почты.
- Выберите значение из раскрывающегося списка «Курс».
- Закройте браузер
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 в Visual Studio.
- Фреймворк NUnit можно интегрировать с Selenium создав тестовый класс NUnit и запустив его с использованием платформы NUnit.
- NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после запуска теста.
- Selenium Команды WebDriver можно разделить на команды браузера, команды Webelement и команды раскрывающегося списка.