Selenium C# Урок с пример за NUnit
Selenium Overview
Selenium е уеб с отворен код Тестване на автоматизацията инструмент, който поддържа множество браузъри и множество операционни системи. Той позволява на тестерите да използват множество езици за програмиране, като напр Java, C#, Python, .Net, Ruby, PHP и Perl за кодиране на автоматизирани тестове.
Общ преглед на C#
C# е обектно-ориентиран език за програмиране, извлечен от C++ намлява Java. C# позволява на разработчиците да създават приложения с помощта на Visual Studio на .Net платформа. По-долу са основните характеристики на C#.
- Това е обектно-ориентиран език за програмиране
- Поддържа разработката на конзола, Windows и уеб базирани приложения
- Той предоставя функции като капсулиране, наследяване и полиморфизъм.
Основен синтаксис на C#
Една програма на C# трябва да съдържа следните секции
- Декларация на пространство от имена
- Класове
- Атрибути и методи на класа
- Основен метод
- Програмни изявления
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
Стъпка 2) Отворете изтегления exe. Кликнете върху „Да“, ако бъдете попитани за права на администратор.
Стъпка 3) Ще се появи изскачащият прозорец по-долу. Кликнете върху бутона „Продължи“.
Файловете ще бъдат изтеглени, както е показано в изскачащия прозорец по-долу.
Стъпка 4) В следващия екран,
Поставете отметки в квадратчетата за
- Универсален Windows Разработване на платформа
- .Net десктоп разработка
Кликнете върху „Инсталиране“.
Изчакайте инсталирането на всеки компонент да завърши. Файловете са с размер 16 GB и отнемат време.
Стъпка 5) Ще се покаже изскачащият прозорец по-долу. Кликнете върху бутона „Рестартиране“.
Стъпка 6) След като машината се рестартира, потърсете „Visual Studio“ в стартовото меню и щракнете върху резултата от търсенето. Ще се появи следният изскачащ прозорец. Кликнете върху връзката „Не сега, може би по-късно“, ако нямате съществуващ акаунт.
Стъпка 7) В следващия екран,
- Изберете цветова тема по ваш вкус
- Щракнете върху бутона „Стартиране на Visual Studio“
Стъпка 8) Ще се появи екранът „Първи стъпки“ на Visual Studio.
Създайте нов проект в Visual Studio:
Стъпка 1) В менюто Файл щракнете върху Нов > Проект
Стъпка 2) В следващия екран,
- Изберете опцията „Visual C#“
- Кликнете върху Конзолно приложение (.Net Framework)
- Въведете име като „Guru99“
- натиснете ОК
Стъпка 3) Екранът по-долу ще се покаже, след като проектът бъде създаден успешно.
Настройте Visual Studio с Selenium Уебдрайвер:
Стъпка 1) Отидете до Инструменти -> NuGet Диспечер на пакети -> Управление на NuGet Пакети за решение
Стъпка 2) В следващия екран
- Търсене за Selenium на получения екран
- Изберете първия резултат от търсенето
- Поставете отметка в квадратчето за проекта
- Кликнете върху „Инсталиране“
Стъпка 3) Кликнете върху бутона „OK“ в изскачащия екран
Стъпка 4) След успешното инсталиране на пакета ще се покаже съобщението по-долу.
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 Пакети за решение
Стъпка 2) В следващия прозорец
- Търсете NUnit
- Изберете резултата от търсенето
- Изберете Проект
- Кликнете върху Инсталиране
Стъпка 3) Ще се появи изскачащият прозорец по-долу. Кликнете върху бутона "Ok".
Стъпка 4) Съобщението по-долу ще се появи, след като инсталацията приключи.
Стъпки за изтегляне на NUnit Test Adapter
Сега в този урок за NUnit ще разгледаме стъпките за изтегляне на NUnit Test Adapter:
Моля, обърнете внимание, че стъпките по-долу работят само за 32-битови машини. За 64-битови машини трябва да изтеглите „NUnit3 Test Adapter“, като следвате същия процес, както е посочено по-долу.
Стъпка 1) Отидете до Инструменти -> NuGet Диспечер на пакети -> Управление на NuGet Пакети за решение. В този екран,
- Търсете NUnitTestAdapter
- Щракнете върху Резултат от търсенето
- Изберете Проект
- Кликнете върху Инсталиране
Стъпка 2) Щракнете върху OK в изскачащия прозорец за потвърждение. След като инсталацията приключи, ще видите следното съобщение-
Selenium и NUnit рамка
Интегрирането на селен с рамката на NUnit позволява на тестера да прави разлика между различни тестови класове. NUnit също така позволява на тестерите да използват анотации като SetUp, Test и TearDown, за да извършват действия преди и след изпълнение на теста.
NUnit framework може да бъде интегриран с Selenium чрез създаване на NUnit тестов клас и стартиране на тестовия клас с помощта на NUnit framework.
По-долу стъпките в това Selenium Урокът за C# framework е необходим за създаване и изпълнение на тестов клас с помощта на NUnit framework.
Стъпки за създаване на тестов клас NUnit в Selenium:
Стъпка 1) В Solution Explorer щракнете с десния бутон върху проект > Добавяне > Клас
Стъпка 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) Кликнете върху „Изграждане“ -> „Изграждане на решение“
ЗАБЕЛЕЖКА: Може да получите грешка като „Не съдържа статичен „основен“ метод, подходящ за входна точка“, когато изграждате
За да разрешите това, отидете на Project> Properties и променете Output Type на „Class Library“. По подразбиране е „Конзолно приложение“.
Стъпка 5) След като изграждането е успешно, трябва да отворим прозореца Test Explorer. Кликнете върху Тест -> Windows -> Test Explorer
Стъпка 6) Прозорецът на Test Explorer се отваря със списък с налични тестове. Щракнете с десния бутон върху Test Explorer и изберете Изпълнение на избрани тестове
Стъпка 7) Selenium трябва да отвори браузъра с посочения URL адрес и да затвори браузъра. Състоянието на тестовия случай ще бъде променено на „Успешно“ в прозореца на Test Explorer.
Selenium Команди на WebDriver в C#
C# използва интерфейса „IWebDriver“ за взаимодействие с браузъра. По-долу са категориите команди, налични с Selenium в C#.
- Команди за браузър
- Команди за уеб елементи
- Падащи команди
Сега в 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:
Тестов сценарий:
- Отидете до уеб страницата на 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"); } } }
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 и команди за падащо меню.