Selenium Tutorial C# com exemplo NUnit
Selenium Visรฃo geral
Selenium รฉ uma web de cรณdigo aberto Teste de automaรงรฃo ferramenta que suporta mรบltiplos navegadores e mรบltiplos sistemas operacionais. Ela permite que os testadores usem mรบltiplas linguagens de programaรงรฃo como Java, C#, Python, .Net, Ruby, PHP e Perl para codificaรงรฃo de testes automatizados.
Visรฃo geral do C#
C# รฉ uma linguagem de programaรงรฃo orientada a objetos derivada de C++ e Java. C# permite que os desenvolvedores criem aplicativos usando o Visual Studio na plataforma .Net. A seguir estรฃo os principais recursos do C#.
- ร uma linguagem de programaรงรฃo orientada a objetos
- Ele suporta o desenvolvimento de aplicativos baseados em console, Windows e web
- Ele fornece recursos como encapsulamento, heranรงa e polimorfismo.
Sintaxe Bรกsica de C#
Um programa em C# precisa conter as seguintes seรงรตes
- Declaraรงรฃo de namespace
- Classes
- Atributos e mรฉtodos de classe
- Mรฉtodo principal
- declaraรงรตes do programa
Exemplo-
Abaixo estรก um exemplo Selenium Programa de exemplo C# para imprimir o texto 'Guru99' no console do sistema.
using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
Console.WriteLine("Guru99");
}
}
}
Explicaรงรฃo:
- Um namespace acima Selenium O exemplo C# รฉ uma coleรงรฃo de vรกrias classes. Cada namespace deve ser declarado usando a palavra-chave 'using'.
- A primeira instruรงรฃo do cรณdigo inclui o namespace 'System' em nosso programa. O namespace do sistema define as classes e eventos fundamentais usados โโem C#. O namespace a ser usado depende dos requisitos do programa.
- A segunda instruรงรฃo declara um namespace โFirstProgramโ para a classe โDemoPrintโ. O arquivo AC# pode conter vรกrias classes no mesmo namespace.
- A terceira instruรงรฃo inclui a declaraรงรฃo de classe. Uma classe pode conter vรกrios atributos e vรกrios mรฉtodos.
- A quarta instruรงรฃo inclui uma declaraรงรฃo do mรฉtodo Main. O mรฉtodo principal รฉ o ponto de entrada de execuรงรฃo de cada classe.
- A รบltima instruรงรฃo รฉ a sintaxe C# usada para imprimir uma instruรงรฃo no console. WriteLine รฉ um mรฉtodo da classe 'Console.
Selenium com configuraรงรฃo C#
Como configurar o Visual Studio com Selenium WebDriver:
Agora neste Selenium Tutorial C#, vamos aprender o processo passo a passo para configurar o Visual Studio com Selenium WebDriver:
O Visual Studio รฉ um Ambiente de Desenvolvimento Integrado (IDE) usado por desenvolvedores para criar aplicativos em vรกrias plataformas, como Windows, Android, iOS e aplicativos baseados em nuvem.
Passo 1) Navegue atรฉ o URL
https://visualstudio.microsoft.com/downloads/ e clique no 'Download grรกtis' botรฃo exibido na guia Comunidade do Visual Studio
Passo 2) Abra o exe baixado. Clique em 'Sim' se forem solicitados direitos de administrador.
Passo 3) O pop-up abaixo aparecerรก. Clique no botรฃo 'Continuar'.
Os arquivos serรฃo baixados conforme mostrado no pop-up abaixo.
Passo 4) Na prรณxima tela,
Marque as caixas de seleรงรฃo para
- Universal Windows Desenvolvimento de plataforma
- Desenvolvimento de desktop .Net
Clique em 'Instalar'.
Aguarde a conclusรฃo da instalaรงรฃo de cada componente. Os arquivos tรชm 16 GB e levarรฃo algum tempo.
Passo 5) O pop-up abaixo serรก exibido. Clique no botรฃo 'Reiniciar'.
Passo 6) Assim que a mรกquina for reiniciada, pesquise โVisual Studioโ no menu iniciar e clique no resultado da pesquisa. O seguinte pop-up aparecerรก. Clique no link โAgora nรฃo, talvez mais tardeโ se vocรช nรฃo tiver uma conta existente.
Passo 7) Na prรณxima tela,
- Selecione o tema de cor de sua preferรชncia
- Clique no botรฃo โIniciar Visual Studio'โ
Passo 8) A tela 'Introduรงรฃo' do Visual Studio serรก exibida.
Crie um novo projeto no Visual Studio:
Passo 1) No menu Arquivo, clique em Novo > Projeto
Passo 2) Na prรณxima tela,
- Selecione a opรงรฃo 'Visual C#'
- Clique no aplicativo de console (.Net Framework)
- Digite o nome como โGuru99โ
- clique em OK
Passo 3) A tela abaixo serรก exibida assim que o projeto for criado com sucesso.
Configurar o Visual Studio com Selenium WebDriver:
Passo 1) Navegue atรฉ Ferramentas -> NuGet Gerenciador de pacotes -> Gerenciar NuGet Pacotes para soluรงรฃo
Passo 2) Na prรณxima tela
- Procurar por Selenium na tela resultante
- Selecione o primeiro resultado da pesquisa
- Marque a caixa de seleรงรฃo do projeto
- Clique em 'Instalar'
Passo 3) Clique no botรฃo 'OK' na tela pop-up
Passo 4) A mensagem abaixo serรก exibida assim que o pacote for instalado com sucesso.
Estrutura NUnit: Visรฃo Geral
NUnit รฉ o Teste de Unidade estrutura suportada pelo Visual Studio e Selenium WebDriver. NUnit รฉ o framework de Teste Unitรกrio mais amplamente usado para aplicativos .Net. NUnit apresenta os resultados do teste em um formato legรญvel e permite que um testador depure os testes automatizados.
Precisamos instalar o NUnit Framework e o NUnit Test Adapter no Visual Studio para usรก-lo.
Etapas para instalar o NUnit Framework
Agora neste Selenium com tutorial C#, vamos aprender o processo de instalaรงรฃo do framework NUnit:
Passo 1) Navegue atรฉ Ferramentas -> NuGet Gerenciador de pacotes -> Gerenciar NuGet Pacotes para soluรงรฃo
Passo 2) Na prรณxima janela
- Procure por NUnit
- Selecione o resultado da pesquisa
- Selecionar projeto
- Clique em Instalar
Passo 3) O pop-up abaixo aparecerรก. Clique no botรฃo 'Ok'.
Passo 4) A mensagem abaixo aparecerรก assim que a instalaรงรฃo for concluรญda.
Etapas para baixar o adaptador de teste NUnit
Agora, neste tutorial do NUnit, abordaremos as etapas para baixar o NUnit Test Adapter:
Observe que as etapas abaixo funcionam apenas para mรกquinas de 32 bits. Para mรกquinas de 64 bits, vocรช precisa baixar o 'NUnit3 Test Adapter' seguindo o mesmo processo mencionado abaixo.
Passo 1) Navegue atรฉ Ferramentas ->NuGet Gerenciador de pacotes -> Gerenciar NuGet Pacotes para soluรงรฃo. Nessa tela,
- Pesquisar NUnitTestAdapter
- Clique em Resultado da pesquisa
- Selecionar projeto
- Clique em Instalar
Passo 2) Clique em OK no pop-up de confirmaรงรฃo. Assim que a instalaรงรฃo estiver concluรญda, vocรช verรก a seguinte mensagem-
Selenium e estrutura NUnit
A integraรงรฃo do Selenium com a estrutura NUnit permite que um testador diferencie entre vรกrias classes de teste. O NUnit tambรฉm permite que os testadores usem anotaรงรตes como SetUp, Test e TearDown para executar aรงรตes antes e depois da execuรงรฃo do teste.
A estrutura NUnit pode ser integrada com Selenium criando uma classe de teste NUnit e executando a classe de teste usando a estrutura NUnit.
Abaixo das etapas neste Selenium O tutorial da estrutura C# รฉ necessรกrio para criar e executar uma classe de teste usando a estrutura NUnit.
Etapas para criar uma classe de teste NUnit em Selenium:
Passo 1) No Solution Explorer, clique com o botรฃo direito em projeto > Adicionar > Classe
Passo 2) A janela de criaรงรฃo de classe aparecerรก.
- Forneรงa um nome para a classe
- Clique no botรฃo Adicionar
Passo 3) A tela abaixo aparecerรก.
Passo 4) Adicione o seguinte cรณdigo ร classe criada. Observe que vocรช precisa especificar o local do arquivo โchromdriver.exeโ durante a inicializaรงรฃo do driver 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();
}
}
}
Passo 4) Clique em 'Construir' -> 'Construir Soluรงรฃo'
OBSERVAรรO: Vocรช pode receber um erro como โNรฃo contรฉm um mรฉtodo 'principal' estรกtico adequado para um ponto de entradaโ ao construir
Para resolver isso, acesse Projeto> Propriedades e altere o tipo de saรญda para โBiblioteca de classesโ. O padrรฃo รฉ โAplicativo de consoleโ.
Passo 5) Assim que a construรงรฃo for bem-sucedida, precisamos abrir a janela Test Explorer. Clique em Teste -> Windows -> Explorador de Testes
Passo 6) A janela Test Explorer รฉ aberta com a lista de testes disponรญveis. Clique com o botรฃo direito em Test Explorer e selecione Executar testes selecionados
Passo 7) Selenium deve abrir o navegador com o URL especificado e fechar o navegador. O status do caso de teste serรก alterado para 'Aprovado' na janela Test Explorer.
Selenium Comandos WebDriver em C#
C# usa a interface 'IWebDriver' para interaรงรตes do navegador. A seguir estรฃo as categorias de comandos disponรญveis com Selenium em C #.
- Comandos do navegador
- Comandos do Elemento Web
- Comandos suspensos
Agora no Selenium Tutorial C Sharp, vamos estudar o Selenium Comandos do WebDriver um por um
Comandos do navegador:
A seguir estรก uma lista de comandos do navegador disponรญveis em C# com Selenium.
| Nome do Comando | Descriรงรฃo | Sintaxe |
|---|---|---|
| Comando Url | Este comando รฉ usado para abrir um URL especificado no navegador. |
driver.Url = "https://www.guru99.com" |
| Comando de tรญtulo | Este comando รฉ usado para recuperar o tรญtulo da pรกgina da web que estรก aberta no momento |
String title = driver.Title |
| Comando PageSource | Este comando รฉ usado para recuperar o cรณdigo-fonte da pรกgina da web que estรก aberta no momento. |
String pageSource = driver.PageSource |
| Comando Fechar | Este comando รฉ usado para fechar a instรขncia do navegador aberta recentemente. |
driver.Close(); |
| Sair do comando | Este comando รฉ usado para fechar todas as instรขncias abertas do navegador |
driver.Quit(); |
| Comando Voltar | Este comando รฉ usado para navegar para a pรกgina anterior do histรณrico do navegador. |
driver.Navigate().Back(); |
| Comando de avanรงo | Este comando รฉ usado para navegar para a prรณxima pรกgina do histรณrico do navegador. |
driver.Navigate().Forward() |
| Comando Atualizar | Este comando รฉ usado para realizar a atualizaรงรฃo do navegador. |
driver.Navigate().Refresh() |
Comandos do elemento Web
Um Webelement representa todos os elementos em uma pรกgina da web. Eles sรฃo representados por tags HTML. Cada um dos botรตes, caixas de texto, links, imagens, tabelas e frames se enquadram em Webelements. Operaรงรตes em elementos da web podem ser acionadas usando a interface IWebelement. Para interagir com um Webelement, precisamos encontrar o elemento na pรกgina da web e entรฃo executar operaรงรตes nele. Ferramentas como Firebug e Firepath podem ser usadas para identificar o Xpath do Webelement.
A seguir estรก a lista de comandos do Webelement disponรญveis em C#.
| Nome do Comando | Descriรงรฃo | Sintaxe |
|---|---|---|
| Clique no comando | Este comando รฉ usado para clicar em um Webelement. Para que o elemento seja clicรกvel, ele deve estar visรญvel na pรกgina da web. Este comando tambรฉm รฉ usado para operaรงรตes de caixas de seleรงรฃo e botรตes de opรงรฃo. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click();
|
| Comando limpar | Este comando รฉ usado especificamente para limpar o conteรบdo existente das caixas de texto. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
element.Clear();
|
| Comando EnviarChaves | Este comando รฉ usado para inserir um valor em caixas de texto. O valor a ser inserido deve ser passado como parรขmetro para |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
element.SendKeys("guru99");
|
| Comando exibido | Este comando รฉ usado para identificar se um elemento especรญfico รฉ exibido na pรกgina web. Este comando retorna um valor booleano; verdadeiro ou falso dependendo da visibilidade do elemento da web. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
Boolean status = element.Displayed;
|
| Comando habilitado | Este comando รฉ usado para identificar se um determinado elemento da web estรก habilitado na pรกgina da web. Este comando retorna um valor booleano; verdadeiro ou falso como resultado. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
Boolean status = element.Enabled;
|
| Comando selecionado | Este comando รฉ usado para identificar se um determinado elemento da web estรก selecionado. Este comando รฉ usado para caixas de seleรงรฃo, botรตes de opรงรฃo e operaรงรตes de seleรงรฃo. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
Boolean status = element.Selected;
|
| Enviar comando: | Este comando รฉ semelhante ao comando clicar. A diferenรงa estรก em saber se o formulรกrio HTML possui um botรฃo do tipo Enviar. Enquanto o comando click clica em qualquer botรฃo, o comando submit clica apenas nos botรตes com o tipo submit. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit();
|
| Comando de texto | Este comando retorna o texto interno de um Webelement. Este comando retorna um valor de string como resultado. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
String text=element.Text;
|
| Comando NomeTag | Este comando retorna a tag HTML de um elemento da web. Ele retorna um valor de string como resultado. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName;
|
| Comando GetCSSValue: | Este mรฉtodo รฉ usado para retornar a cor de um elemento da web na forma de uma string rgba (vermelho, verde, azul e alfa). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
String color = element.getCSSValue;
saรญdaโ Se a cor do elemento for vermelha, a saรญda seria rgba(255,0,0,1) |
Comandos suspensos:
As operaรงรตes suspensas em C# podem ser realizadas usando a classe SelectElement.
A seguir estรฃo as vรกrias operaรงรตes suspensas disponรญveis em C#.
| Nome do Comando | Descriรงรฃo | Sintaxe |
|---|---|---|
| Comando SelecionarPorTexto | Este comando seleciona uma opรงรฃo de um menu suspenso com base no texto da opรงรฃo. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
|
| Comando SelectByIndex | Este comando รฉ usado para selecionar uma opรงรฃo com base em seu รญndice. O รญndice do menu suspenso comeรงa em 0. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
|
| Comando SelecionarPorValor | Este comando รฉ usado para selecionar uma opรงรฃo com base em seu valor de opรงรฃo. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
|
| Comando de opรงรตes | Este comando รฉ usado para recuperar a lista de opรงรตes exibidas em um menu suspenso. |
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);
}
O cรณdigo acima imprime todas as opรงรตes no console em um menu suspenso. |
| Comando IsMultiple | Este comando รฉ usado para identificar se um menu suspenso รฉ um menu suspenso de seleรงรฃo mรบltipla; Um menu suspenso de seleรงรฃo mรบltipla permite que o usuรกrio selecione mais de uma opรงรฃo em um menu suspenso por vez. Este comando retorna um valor booleano. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
|
| Comando Desselecionar tudo | Este comando รฉ usado em menus suspensos de seleรงรฃo mรบltipla. Limpa as opรงรตes que jรก foram selecionadas. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.DeSelectAll();
|
| Comando DeSelectByIndex | Este comando desmarca um valor jรก selecionado usando seu รญndice. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
|
| Comando DeSelectByValue | Este comando desmarca um valor jรก selecionado usando seu valor. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
|
| Comando DeSelectByText | Este comando desmarca um valor jรก selecionado usando seu texto. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");
|
Amostras de cรณdigo
Exemplo 1: Clique em um link usando o Localizador XPATH:
Cenรกrio de teste:
- Navegue atรฉ a pรกgina Demo Guru99 โ https://demo.guru99.com/test/guru99home/
- Maximize a janela
- Clique no menu 'Teste'
- Feche o navegador
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();
}
}
}
Exemplo 2: Inserindo dados em TextoBox e clique em um botรฃo usando o localizador XPATH:
Cenรกrio de teste:
- Navegue atรฉ a pรกgina de demonstraรงรฃo do Guru 99 โ https://demo.guru99.com/test/guru99home/
- Insira os dados na caixa de texto do e-mail
- Clique no botรฃo de inscriรงรฃo
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("[email protected]");
signUpButton.Click();
}
}
}
Exemplo 3: Inserindo dados em TextoBox e clique em um botรฃo usando o localizador CSS:
Cenรกrio de teste:
- Navegue atรฉ a pรกgina de demonstraรงรฃo do Guru 99 โ https://demo.guru99.com/test/guru99home/
- Insira os dados na caixa de texto do e-mail
- Clique no botรฃo de inscriรงรฃo
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("[email protected]");
signUpButton.Click();
}
}
}
Exemplo 4: Selecione um valor no menu suspenso:
Cenรกrio de teste:
- Navegue atรฉ a pรกgina de demonstraรงรฃo do Guru 99 โ https://demo.guru99.com/test/guru99home/
- Clique em SAP link
- Insira dados nas caixas de texto de nome e e-mail
- Selecione um valor no menu suspenso Curso
- Feche o navegador
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");
}
}
}
Resumo
- Para utilizar Selenium WebDriver com C#, vocรช precisa instalar o Visual Studio.
- NUnit รฉ a estrutura de teste de unidade suportada pelo Visual Studio e Selenium driver da web
- Precisamos instalar o NUnit Framework e o NUnit Test Adapter no Visual Studio para usรก-lo.
- A estrutura NUnit pode ser integrada com Selenium criando uma classe de teste NUnit e executando a classe de teste usando a estrutura NUnit.
- O NUnit tambรฉm permite que os testadores usem anotaรงรตes como SetUp, Test e TearDown para executar aรงรตes antes e depois da execuรงรฃo do teste.
- Selenium Os comandos do WebDriver podem ser categorizados em comandos do navegador, comandos do Webelement e comandos suspensos.
































