Учебники

61) Selenium C # Webdriver

Selenium Overview:

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

Обзор C #:

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

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

Основной синтаксис C #:

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

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

Пример-

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

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

Объяснение:

  • Пространство имен в C # является коллекцией нескольких классов. Каждое пространство имен должно быть объявлено с использованием ключевого слова ‘using’.
  • Первое утверждение кода включает в себя пространство имен «Система» в нашей программе. Системное пространство имен определяет основные классы и события, используемые в C #. Используемое пространство имен зависит от требований программы.
  • Второй оператор объявляет пространство имен «FirstProgram» для класса «DemoPrint». Файл AC # может содержать несколько классов в одном пространстве имен.
  • Третье утверждение включает объявление класса. Класс может содержать несколько атрибутов и несколько методов.
  • Четвертое утверждение включает в себя объявление метода Main. Основным методом является точка входа для каждого класса.
  • Последний оператор — это синтаксис C #, используемый для вывода оператора в консоль. WriteLine — это метод класса Console.

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

Visual Studio — это интегрированная среда разработки (IDE), которая используется разработчиками для создания приложений на нескольких платформах, таких как Windows, Android, iOS и облачные приложения.

Шаг 1) Перейдите по адресу https://www.visualstudio.com/downloads/ и нажмите кнопку «Бесплатная загрузка», отображаемую на вкладке Visual Studio Community 2017

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

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

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

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

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

  • Разработка универсальной платформы Windows
  • Чистая разработка рабочего стола

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

Дождитесь завершения установки каждого компонента. Файлы размером 16 ГБ занимают время.

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

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

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

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

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

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

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

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

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

Шаг 3) При успешном создании проекта отобразится приведенный ниже экран.

Установите Visual Studio с Selenium WebDriver:

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

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

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

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

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

NUnit Framework: обзор

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

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

Шаги для установки NUnit Framework:

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

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

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

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

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

Шаги для загрузки NUnit Test Adapter

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

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

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

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

Селен и NUnit рамки:

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

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

Ниже приведены шаги, необходимые для создания и запуска тестового класса с использованием инфраструктуры NUnit.

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

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

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

  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) Нажмите «Построить» -> «Построить решение»

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

Чтобы решить эту проблему, перейдите в Project> Properties и измените тип вывода на «Class Library». По умолчанию установлено «Консольное приложение».

Шаг 5) Как только сборка прошла успешно, нам нужно открыть окно Test Explorer. Нажмите на Тест -> Windows -> Тестовый проводник

Шаг 6) Откроется окно Test Explorer со списком доступных тестов. Щелкните правой кнопкой мыши на Test Explorer и выберите Run Selected Tests.

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

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

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

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

Давайте изучать их один за другим

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

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

Название команды

Описание

Синтаксис

Url Command

Эта команда используется для открытия указанного 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 Команды:

A Webelement represents all the elements on a web page. They are represented by HTML tags. Each of the buttons, textboxes, links, images, tables, and frames fall under Webelements. Operations on web elements can be triggered using the IWebelement interface. To interact with a Webelement, we need to find the element on the webpage and then perform operations on it. Tools like Firebug and Firepath can be used to identify the Xpath of Webelement.

The following are the list of Webelement commands available in C#.

Command Name

Description

Syntax

Click command

This command is used to click on a Webelement. For the element to be clickable, the element must be visible on the webpage. This command is used for checkbox and radio button operations as well.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();

Clear command

This command is specifically used for clearing the existing contents of textboxes.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();

SendKeys command

This command is used to input a value onto text boxes. The value to be entered must be passed as a parameter to

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");

Displayed command

This command is used to identify if a specific element is displayed on the webpage. This command returns a Boolean value; true or false depending on the visibility of web element.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;

Enabled command

This command is used to identify if a particular web element is enabled on the web page. This command returns a Boolean value; true or false as a result.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;

Selected command

This command is used to identify if a particular web element is selected. This command is used for checkboxes,radio buttons, and select operations.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;

Submit command:

This command is similar to click command, The difference lies in whether the HTML form has a button with the type Submit. While the click command clicks on any button, submit command clicks on the only the buttons with type submit.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();

Text command

This command returns the innertext of a Webelement. This command returns a string value as a result.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;

TagName command

Эта команда возвращает 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();

Команда DeSelectAll

Эта команда используется в выпадающих списках. Это очищает опции, которые уже были выбраны.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();

Команда DeSelectByIndex

Эта команда отменяет выбор уже выбранного значения, используя его индекс.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");

Команда DeSelectByValue

Эта команда отменяет выбор уже выбранного значения, используя его значение.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");

Команда DeSelectByText

Эта команда отменяет выбор уже выбранного значения, используя его текст.

IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Образцы кода

Пример 1: Нажмите на ссылку, используя локатор XPATH:

Тестовый сценарий:

  1. Перейдите на веб-страницу Demo Guru99 — http://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 = "http://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. Ввод данных в TextBox и нажатие кнопки с помощью локатора XPATH:

Тестовый сценарий:

  1. Перейдите на демонстрационную страницу Guru 99 — http://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 = "http://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: Ввод данных в TextBox и нажатие кнопки с помощью локатора CSS:

Тестовый сценарий:

  1. Перейдите на демонстрационную страницу Guru 99 - http://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 = "http://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 - http://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 = "http://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 с C #, вам нужно установить Visual Studio.
  • NUnit - это инфраструктура модульного тестирования, поддерживаемая Visual Studio и Selenium WebDriver.
  • Нам нужно установить NUnit Framework и тестовый адаптер NUnit в Visual Studio, чтобы использовать его.
  • Инфраструктуру NUnit можно интегрировать с Selenium, создав тестовый класс NUnit и запустив тестовый класс с использованием инфраструктуры NUnit.
  • NUnit также позволяет тестировщикам использовать аннотации, такие как SetUp, Test и TearDown, для выполнения действий до и после выполнения теста.
  • Команды Selenium WebDriver можно разделить на команды браузера, команды Webelement и выпадающие команды.

Эта статья предоставлена ​​Снехой Гудапати