Selenium Tutorial C# com exemplo NUnit

Selenium Visão geral

Selenium é uma web de código aberto Teste de automação ferramenta que suporta vários navegadores e vários operasistemas de trabalho. Ele permite que os testadores usem várias linguagens de programação, como Java, C#, Python, .Net, Ruby, PHP e Perl para codificar 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 Visual Studio na plataforma .Net. O seguintewing são as principais características C#.

  1. É uma linguagem de programação orientada a objetos
  2. Ele suporta o desenvolvimento de console, windows e aplicativos baseados na web
  3. Ele fornece recursos como encapsulamento, herança e polimorfismo.

Sintaxe Básica de C#

Um programa em C# precisa conter o seguintewing seções

  1. Declaração de namespace
  2. Classes
  3. Atributos e métodos de classe
  4. Método principal
  5. 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 Visual Studio de Selenium WebDriver:

Agora neste Selenium Tutorial de C#, vamos aprender o processo passo a passo para configurar Visual Studio de Selenium WebDriver:

Visual Studio é um ambiente de desenvolvimento integrado (IDE) usado por desenvolvedores para construir 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' exibição de botãoyed on Visual Studio Community aba

Estabelecer Visual Studio Com o  Selenium webdriver

Passo 2) Abra o exe baixado. Clique em 'Sim' se forem solicitados direitos de administrador.

Estabelecer Visual Studio Com o  Selenium webdriver

Passo 3) O pop-up abaixo aparecerá. Clique no botão 'Continuar'.

Estabelecer Visual Studio Com o  Selenium WebDrive

Os arquivos serão baixados conforme mostrado no pop-up abaixo.

Estabelecer Visual Studio Com o  Selenium WebDrive

Passo 4) Na próxima tela,

Selecione o chequeboxes para

  • Universal Windows Desenvolvimento de plataforma
  • Desenvolvimento de desktop .Net

Clique em 'Instalar'.

Estabelecer Visual Studio Com o  Selenium WebDrive

Aguarde a conclusão da instalação de cada componente. Os arquivos têm 16 GB e levarão algum tempo.

Estabelecer Visual Studio Com o  Selenium WebDrive

Passo 5) O pop-up abaixo será exibidoyed. Clique no botão 'Reiniciar'.

Estabelecer Visual Studio Com o  Selenium WebDrive

Passo 6) Assim que a máquina for reiniciada, pesquise “Visual Studio”No menu iniciar e clique no resultado da pesquisa. O seguintewing pop-up aparecerá. Clique em “Agora não, talvez later”link se você não tiver uma conta existente.

Estabelecer Visual Studio Com o  Selenium WebDrive

Passo 7) Na próxima tela,

  • Selecione o tema de cor de sua preferência
  • Clique no botão “Iniciar Visual Studio'"

Estabelecer Visual Studio Com o  Selenium WebDrive

Passo 8) Visual Studio A tela 'Começar' aparecerá.

Estabelecer Visual Studio Com o  Selenium WebDrive

Criar um novo projeto em Visual Studio:

Passo 1) No menu Arquivo, clique em Novo > Projeto

Crie um novo projeto em Visual Studio

Passo 2) Na próxima tela,

  1. Selecione a opção 'Visual C#'
  2. Clique no aplicativo de console (.Net Framework)
  3. Digite o nome como “Guru99”
  4. clique em OK

Crie um novo projeto em Visual Studio

Passo 3) A tela abaixo será exibidayed assim que o projeto for criado com sucesso.

Crie um novo projeto em Visual Studio

Estabelecer Visual Studio de Selenium WebDriver:

Passo 1) Navegue até Ferramentas -> NuGet Gerenciador de pacotes -> Gerenciar NuGet Pacotes para solução

Estabelecer Visual Studio Com o  Selenium webdriver

Passo 2) Na próxima tela

  1. Procurar por Selenium na tela resultante
  2. Selecione o primeiro resultado da pesquisa
  3. Verifique a verificação do projetobox
  4. Clique em 'Instalar'

Estabelecer Visual Studio Com o  Selenium webdriver

Passo 3) Clique no botão 'OK' na tela pop-up

Estabelecer Visual Studio Com o  Selenium webdriver

Passo 4) A mensagem abaixo será exibidayed assim que o pacote for instalado com sucesso.

Estabelecer Visual Studio Com o  Selenium webdriver

Estrutura NUnit: Visão Geral

NUnit é o Teste de Unidade quadro apoiado por Visual Studio e Selenium WebDriver. NUnit é a estrutura de teste de unidade mais amplamente usada para aplicativos .Net. NUnit apresenta os resultados do teste em um readable formato e permite que um testador depure os testes automatizados.

Precisamos instalar o NUnit Framework e o NUnit Test Adapter em 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

Instale o NUnit Framework

Passo 2) Na próxima janela

  1. Procure por NUnit
  2. Selecione o resultado da pesquisa
  3. Selecionar projeto
  4. Clique em Instalar

Instale o NUnit Framework

Passo 3) O pop-up abaixo aparecerá. Clique no botão 'Ok'.

Instale o NUnit Framework

Passo 4) A mensagem abaixo aparecerá assim que a instalação for concluída.

Instale o NUnit Framework

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' seguindowing o mesmo processo mencionado abaixo.

Passo 1) Navegue até Ferramentas ->NuGet Gerenciador de pacotes -> Gerenciar NuGet Pacotes para solução. Nessa tela,

  1. Pesquisar NUnitTestAdapter
  2. Clique em Resultado da pesquisa
  3. Selecionar projeto
  4. Clique em Instalar

Baixe o adaptador de teste NUnit

Passo 2) Clique em OK no pop-up de confirmação. Assim que a instalação estiver concluída, você verá o seguintewing mensagem-

Baixe o adaptador de teste NUnit

Selenium e estrutura NUnit

Integração de 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

Crie uma classe de teste NUnit em Selenium

Passo 2) A janela de criação de classe aparecerá.

  1. Forneça um nome para a classe
  2. Clique no botão Adicionar

Crie uma classe de teste NUnit em Selenium

Passo 3) A tela abaixo aparecerá.

Crie uma classe de teste NUnit em Selenium

Passo 4) Adicione o seguintewing código para a 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'

Crie uma classe de teste NUnit em Selenium

NOTA: Você pode receber um erro como “Não contém um método 'principal' estático adequado para um ponto de entrada” ao construir

Crie uma classe de teste NUnit em Selenium

Para resolver isso, acesse Projeto> Propriedades e altere o tipo de saída para “Biblioteca de classes”. O padrão é “Aplicativo de console”.

Crie uma classe de teste NUnit em Selenium

Passo 5) Assim que a construção for bem-sucedida, precisamos abrir a janela Test Explorer. Clique em Teste -> Windows -> Explorador de Testes

Crie uma classe de teste NUnit em Selenium

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

Crie uma classe de teste NUnit em Selenium

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.

Crie uma classe de teste NUnit em Selenium

Selenium Comandos WebDriver em C#

C# usa a interface 'IWebDriver' para interações do navegador. O seguintewing são a categoria de comandos disponíveis com Selenium em C #.

  1. Comandos do navegador
  2. Comandos do Elemento Web
  3. Comandos suspensos

Agora no Selenium Tutorial C Sharp, vamos estudar o Selenium Comandos do WebDriver um por um

Comandos do navegador:

Following é 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 de uma página web. Eles são representados por tags HTML. Cada um dos botões, textoboxArquivos, links, imagens, tabelas e quadros se enquadram em Webelements. Operaações em elementos da web podem ser acionadas usando a interface IWebelement. Para interagir com um Webelement, precisamos encontrar o elemento na página web e então realizar operasobre ele. Ferramentas como Firebug e Firepath podem ser usadas para identificar o Xpath do Webelement.

O seguintewing são 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 é usado para verificaçãobox e botão de opção operatambém.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Comando limpar Este comando é usado especificamente para limpar o conteúdo existente do textoboxes.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Comando EnviarChaves Este comando é usado para inserir um valor no texto boxé. O valor a ser inserido deve ser passado como parâmetro para
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
Mostraryed comando Este comando é usado para identificar se um elemento específico está sendo exibidoyed na página da 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 verificaçãoboxes, botões de opção e selecione operações.
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:

Suspenso operações em C# podem ser alcançadas usando a classe SelectElement.

O seguintewing são os vários menus suspensos operadisponí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 exibidasyed 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:

  1. Navegue até a página Demo Guru99 – https://demo.guru99.com/test/guru99home/
  2. Maximize a janela
  3. Clique no menu 'Teste'
  4. 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:

  1. Navegue até a página de demonstração do Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Insira os dados em email texto box
  3. 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("test123@gmail.com");
            signUpButton.Click();
                        
        }
    }
}			

Exemplo 3: Inserindo dados em TextoBox e clique em um botão usando o localizador CSS:

Cenário de teste:

  1. Navegue até a página de demonstração do Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Insira os dados em email texto box
  3. 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("test123@gmail.com");
            signUpButton.Click();

             
        }
    }
}

Exemplo 4: Selecione um valor no menu suspenso:

Cenário de teste:

  1. Navegue até a página de demonstração do Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Clique no link SAP
  3. Insira os dados no nome e email texto boxes
  4. Selecione um valor no menu suspenso Curso
  5. 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 Visual Studio.
  • NUnit é a estrutura de teste de unidade suportada por Visual Studio e Selenium driver da web
  • Precisamos instalar o NUnit Framework e o NUnit Test Adapter em 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.