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

Selenium Обзор

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

Обзор С#

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

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

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

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

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

Пример-

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

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

Объяснение:

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

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

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

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

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

Настройте Visual Studio с помощью Selenium WebDrive

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

Настройте Visual Studio с помощью Selenium WebDrive

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

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

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

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

Настройте Visual Studio с помощью Selenium WebDrive

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

Настройте Visual Studio с помощью Selenium WebDrive

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

Настройте Visual Studio с помощью Selenium WebDrive

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

Настройте Visual Studio с помощью Selenium WebDrive

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

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

Настройте Visual Studio с помощью Selenium WebDrive

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

Настройте Visual Studio с помощью Selenium WebDrive

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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», выполнив тот же процесс, который указан ниже.

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

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

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

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

Скачать тестовый адаптер 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) Добавьте следующий код в созданный класс. Обратите внимание, что вам необходимо указать местоположение файла «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' для взаимодействия с браузером. Ниже приведены категории команд, доступных с Selenium в C #.

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

Теперь в Selenium Учебное пособие по C Sharp, давайте изучим Selenium Команды WebDriver одна за другой

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

Ниже приведен список команд браузера, доступных в C#. Selenium.

Имя команды Описание Синтаксис
URL-команда Эта команда используется для открытия указанного URL-адреса в браузере.
driver.Url = "https://www.guru99.com"
Название команды Эта команда используется для получения заголовка веб-страницы, которая открыта в данный момент.
String title = driver.Title
Команда PageSource Эта команда используется для получения исходного кода веб-страницы, которая открыта в данный момент.
String pageSource = driver.PageSource
Закрыть команду Эта команда используется для закрытия недавно открытого экземпляра браузера.
driver.Close();
Выйти из команды Эта команда используется для закрытия всех открытых экземпляров браузера.
driver.Quit();
Команда «Назад» Эта команда используется для перехода на предыдущую страницу истории браузера.
driver.Navigate().Back();
Передовая команда Эта команда используется для перехода к следующей странице истории браузера.
driver.Navigate().Forward()
Обновить команду Эта команда используется для обновления браузера.
driver.Navigate().Refresh()

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

Webelement представляет все элементы на веб-странице. Они представлены тегами 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:

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

  1. Перейдите на веб-страницу Demo Guru99 – https://demo.guru99.com/test/guru99home/
  2. Увеличить окно
  3. Нажмите на меню «Тестирование».
  4. Закройте браузер
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("D:\\3rdparty\\chrome");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();
            IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a"));
            link.Click();
            m_driver.Close();
        }
    }
}

Пример 2: Ввод данных в текстBox и нажмите кнопку, используя локатор XPATH:

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

  1. Перейдите на демо-страницу Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Введите данные в текстовое поле электронной почты
  3. Нажмите кнопку «Зарегистрироваться»
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']"));
            IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();
                        
        }
    }
}			

Пример 3: Ввод данных в текстBox и нажмите кнопку, используя локатор CSS:

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

  1. Перейдите на демо-страницу Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Введите данные в текстовое поле электронной почты
  3. Нажмите кнопку «Зарегистрироваться»
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]"));
            IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();

             
        }
    }
}

Пример 4. Выберите значение в раскрывающемся списке:

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

  1. Перейдите на демо-страницу Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Нажмите на SAP ссылке.
  3. Введите данные в текстовые поля имени и электронной почты.
  4. Выберите значение из раскрывающегося списка «Курс».
  5. Закройте браузер
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;


namespace Guru99Demo
{
	class TestSelect						
    {
        IWebDriver m_driver;

        [Test]
		public void selectDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

            IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']"));

			var selectTest = new SelectElement(course);
			// Select a value from the dropdown				
            selectTest.SelectByValue("sap-abap");
                        
        }
    }
}

Итого

  • Для того чтобы использовать Selenium WebDriver с C#, необходимо установить Visual Studio.
  • NUnit — это платформа модульного тестирования, поддерживаемая Visual Studio и Selenium вебдрайвер
  • Чтобы использовать его, нам необходимо установить NUnit Framework и тестовый адаптер NUnit в Visual Studio.
  • Фреймворк NUnit можно интегрировать с Selenium создав тестовый класс NUnit и запустив его с использованием платформы NUnit.
  • NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после запуска теста.
  • Selenium Команды WebDriver можно разделить на команды браузера, команды Webelement и команды раскрывающегося списка.