Selenium C# Урок с пример за NUnit

Selenium Overview

Selenium е уеб с отворен код Тестване на автоматизацията инструмент, който поддържа множество браузъри и множество операционни системи. Той позволява на тестерите да използват множество езици за програмиране, като напр Java, C#, Python, .Net, Ruby, PHP и Perl за кодиране на автоматизирани тестове.

Общ преглед на C#

C# е обектно-ориентиран език за програмиране, извлечен от C++ намлява Java. C# позволява на разработчиците да създават приложения с помощта на Visual Studio на .Net платформа. По-долу са основните характеристики на C#.

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

Основен синтаксис на C#

Една програма на C# трябва да съдържа следните секции

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

Example-

По-долу има пример Selenium C# примерна програма за отпечатване на текста „Guru99“ на системната конзола.

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

Обяснение:

  • Пространство от имена в горното Selenium Примерът за C# е колекция от множество класове. Всяко пространство от имена трябва да бъде декларирано с помощта на ключовата дума 'using'.
  • Първият израз на кода включва пространството от имена „System“ в нашата програма. Системното пространство от имена дефинира основните класове и събития, използвани в C#. Пространството от имена, което ще се използва, зависи от изискването на програмата.
  • Вторият оператор декларира пространство от имена „FirstProgram“ за класа „DemoPrint“. Файлът AC# може да съдържа множество класове в едно и също пространство от имена.
  • Третият оператор включва декларацията на класа. Един клас може да съдържа множество атрибути и множество методи.
  • Четвъртият оператор включва декларация на метода Main. Основният метод е входната точка на изпълнение за всеки клас.
  • Последният израз е синтаксисът на C#, използван за отпечатване на израз в конзолата. WriteLine е метод на класа „Конзола.

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) В следващия екран,

Поставете отметки в квадратчетата за

  • Универсален Windows Разработване на платформа
  • .Net десктоп разработка

Кликнете върху „Инсталиране“.

Настройте Visual Studio с Selenium WebDrive

Изчакайте инсталирането на всеки компонент да завърши. Файловете са с размер 16 GB и отнемат време.

Настройте 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. натиснете ОК

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

Стъпка 3) Екранът по-долу ще се покаже, след като проектът бъде създаден успешно.

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

Настройте Visual Studio с Selenium Уебдрайвер:

Стъпка 1) Отидете до Инструменти -> NuGet Диспечер на пакети -> Управление на NuGet Пакети за решение

Настройте Visual Studio с Selenium уебдрайвер

Стъпка 2) В следващия екран

  1. Търсене за Selenium на получения екран
  2. Изберете първия резултат от търсенето
  3. Поставете отметка в квадратчето за проекта
  4. Кликнете върху „Инсталиране“

Настройте Visual Studio с Selenium уебдрайвер

Стъпка 3) Кликнете върху бутона „OK“ в изскачащия екран

Настройте Visual Studio с Selenium уебдрайвер

Стъпка 4) След успешното инсталиране на пакета ще се покаже съобщението по-долу.

Настройте Visual Studio с Selenium уебдрайвер

NUnit Framework: Общ преглед

NUnit е Единично тестване рамка, поддържана от Visual Studio и Selenium Уебдрайвер. NUnit е най-широко използваната рамка за модулно тестване за .Net приложения. NUnit представя резултатите от теста в четим формат и позволява на тестер да отстранява грешки в автоматизираните тестове.

Трябва да инсталираме NUnit Framework и NUnit Test Adapter на Visual Studio, за да го използваме.

Стъпки за инсталиране на NUnit Framework

Сега в това Selenium с C# урок, нека научим процеса за инсталиране на NUnit framework:

Стъпка 1) Отидете до Инструменти -> NuGet Диспечер на пакети -> Управление на NuGet Пакети за решение

Инсталирайте NUnit Framework

Стъпка 2) В следващия прозорец

  1. Търсете NUnit
  2. Изберете резултата от търсенето
  3. Изберете Проект
  4. Кликнете върху Инсталиране

Инсталирайте NUnit Framework

Стъпка 3) Ще се появи изскачащият прозорец по-долу. Кликнете върху бутона "Ok".

Инсталирайте NUnit Framework

Стъпка 4) Съобщението по-долу ще се появи, след като инсталацията приключи.

Инсталирайте NUnit Framework

Стъпки за изтегляне на NUnit Test Adapter

Сега в този урок за NUnit ще разгледаме стъпките за изтегляне на NUnit Test Adapter:

Моля, обърнете внимание, че стъпките по-долу работят само за 32-битови машини. За 64-битови машини трябва да изтеглите „NUnit3 Test Adapter“, като следвате същия процес, както е посочено по-долу.

Стъпка 1) Отидете до Инструменти -> NuGet Диспечер на пакети -> Управление на NuGet Пакети за решение. В този екран,

  1. Търсете NUnitTestAdapter
  2. Щракнете върху Резултат от търсенето
  3. Изберете Проект
  4. Кликнете върху Инсталиране

Изтеглете NUnit Test Adapter

Стъпка 2) Щракнете върху OK в изскачащия прозорец за потвърждение. След като инсталацията приключи, ще видите следното съобщение-

Изтеглете NUnit Test Adapter

Selenium и NUnit рамка

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

NUnit framework може да бъде интегриран с Selenium чрез създаване на NUnit тестов клас и стартиране на тестовия клас с помощта на NUnit framework.

По-долу стъпките в това Selenium Урокът за C# framework е необходим за създаване и изпълнение на тестов клас с помощта на NUnit framework.

Стъпки за създаване на тестов клас NUnit в Selenium:

Стъпка 1) В Solution Explorer щракнете с десния бутон върху проект > Добавяне > Клас

Създайте тестов клас 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

За да разрешите това, отидете на Project> Properties и променете Output Type на „Class Library“. По подразбиране е „Конзолно приложение“.

Създайте тестов клас NUnit Selenium

Стъпка 5) След като изграждането е успешно, трябва да отворим прозореца Test Explorer. Кликнете върху Тест -> Windows -> Test Explorer

Създайте тестов клас NUnit Selenium

Стъпка 6) Прозорецът на Test Explorer се отваря със списък с налични тестове. Щракнете с десния бутон върху Test Explorer и изберете Изпълнение на избрани тестове

Създайте тестов клас NUnit Selenium

Стъпка 7) Selenium трябва да отвори браузъра с посочения URL адрес и да затвори браузъра. Състоянието на тестовия случай ще бъде променено на „Успешно“ в прозореца на Test Explorer.

Създайте тестов клас NUnit Selenium

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

C# използва интерфейса „IWebDriver“ за взаимодействие с браузъра. По-долу са категориите команди, налични с Selenium в C#.

  1. Команди за браузър
  2. Команди за уеб елементи
  3. Падащи команди

Сега в Selenium C Sharp урок, нека изучим Selenium WebDriver команди една по една

Команди на браузъра:

Следва списък с команди на браузъра, налични в C# с Selenium.

Име на команда Descriptйон Синтаксис
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

Webelement представлява всички елементи на уеб страница. Те са представени чрез HTML тагове. Всеки от бутоните, текстовите полета, връзките, изображенията, таблиците и рамките попадат в Webelements. Operaции върху уеб елементи могат да се задействат с помощта на интерфейса IWebelement. За да взаимодействаме с Webelement, трябва да намерим елемента на уеб страницата и след това да извършим операции върху него. Инструменти като Firebug и Firepath могат да се използват за идентифициране на Xpath на Webelement.

Следва списъкът с команди Webelement, налични в C#.

Име на команда Descriptйон Синтаксис
Кликнете върху командата Тази команда се използва за щракване върху Webelement. За да може върху елемента да се кликва, той трябва да е видим на уеб страницата. Тази команда се използва и за операции с квадратчета за отметка и бутони за избор.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Изчистване на командата Тази команда се използва специално за изчистване на съществуващото съдържание на текстови полета.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Команда SendKeys Тази команда се използва за въвеждане на стойност в текстови полета. Стойността, която трябва да бъде въведена, трябва да бъде предадена като параметър към
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;
Изпращане на команда: Тази команда е подобна на командата click. Разликата е в това дали HTML формулярът има бутон с типа Submit. Докато командата click кликва върху който и да е бутон, командата submit кликва само върху бутоните с тип submit.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Текстова команда Тази команда връща вътрешния текст на Webelement. Тази команда връща стойност на низ като резултат.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
Команда TagName Тази команда връща 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#.

Име на команда Descriptйон Синтаксис
Команда 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 Locator:

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

  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");
                        
        }
    }
}

Oбобщение

  • За да използвате Selenium WebDriver с C#, трябва да инсталирате Visual Studio.
  • NUnit е рамката за тестване на единици, поддържана от Visual Studio и Selenium уеб драйвер
  • Трябва да инсталираме NUnit Framework и NUnit Test Adapter на Visual Studio, за да го използваме.
  • NUnit framework може да бъде интегриран с Selenium чрез създаване на NUnit тестов клас и стартиране на тестовия клас с помощта на NUnit framework.
  • NUnit също така позволява на тестерите да използват анотации като SetUp, Test и TearDown, за да извършват действия преди и след изпълнение на теста.
  • Selenium Командите на WebDriver могат да бъдат категоризирани в команди за браузър, команди за Webelement и команди за падащо меню.