Como fechar um navegador em selênio

Como fechar um navegador em selênio

Neste artigo, discutiremos sobre os métodos para fechar o navegador. O selênio suporta dois métodos para fechar o navegador: (1) Close () Método e (2) Quit () Método. Mas ambos são usados ​​em diferentes situações. Vamos explicar como e onde usamos cada um deles com um exemplo implementado. Este artigo implementa duas abordagens para verificar se o ID da sessão do Webdriver está ativo ou nulo.

Como fechar um navegador em selênio

Fechar o navegador é uma das operações quando terminamos o teste de verificação do site. A estrutura do Selenium também fornece os comandos para fechar o navegador inteiro ou as guias após terminar o teste de automação com a ajuda do WebDriver.

O selênio suporta dois métodos para fechar os navegadores: (1) motorista.Close () e (2) Driver.desistir(). Como e quando cada um dos métodos é usado é explicado no seguinte:

Método Close ()

O método Close () é uma das operações que são suportadas pelo selênio para fechar a janela do navegador que está em foco. Se houver várias guias abertas no navegador, o método Close (), com a ajuda de WebDrivers, fecha apenas a guia focada na qual o teste de automação de selênio está em execução atualmente e o restante das guias não está fechado. O método Close () fecha apenas a guia atual, mas não destrói a sessão do WebDriver.

A sintaxe para fechar a janela do navegador é fornecida no seguinte:

motorista.fechar()

Onde o "driver" é a instância do webdriver.

Método de Quit ()

A estrutura de selênio suporta a operação de Quit () para fechar todas as guias abertas do navegador. O método de desativação () permite fechar todas as guias que estão abertas no navegador. O WebDriver do navegador usa o método Quit () para encerrar a sessão do WebDriver, que está atualmente ativa.

O método de Quit () não apenas fecha todas as guias do navegador aberto, mas também encerra as sessões do WebDriver, chamando o driver.Método de disposição. Caso o webdriver não destrua a sessão após fechar as janelas do navegador, há chances de vazar arquivos de memória e erros.

A sintaxe para fechar a janela do navegador é fornecida no seguinte:

motorista.desistir()

Onde o "driver" é a instância do webdriver.

Abordagem 1: Feche a janela atual do navegador enquanto mantém a sessão do Webdriver Alta

No selênio, o método Close () permite a sessão do WebDriver, depois de fechar a guia atual. Vamos fazer um cenário em que abrimos o navegador e fechamos a guia atualmente focada e verifique se a sessão não está fechada. Para fazer isso, usamos o https: // www.eBay.com/ site.

Vamos começar a implementar!

Primeiro, crie o arquivo java com o nome como Close_browser.Java. Além disso, selecione a opção da classe de vazio estático. Em seguida, o arquivo java cria automaticamente a classe pública com o nome do arquivo e gera uma classe principal de vazio estático público. O código é mencionado da seguinte forma:

classe pública Close_browser
public static void main (string [] args)

Agora, vamos importar os pacotes necessários de webdriver, sessionID, remotewebdriver e tempo.Duração para classe implícita.

Aqui está o código para o pacote de importação necessário:

importar java.tempo.Duração;
importação org.OpenQa.selênio.cromada.Cromedriver;
importação org.OpenQa.selênio.controlo remoto.Remotewebdriver;
importação org.OpenQa.selênio.controlo remoto.Identificação de sessão;

Você pode se referir a todo o código que fornecemos no seguinte. Depois disso, dividimos esse código em pequenos pedaços para que você possa entender qual função cada um serve.

Pacote de interface do pacote;
importar java.tempo.Duração;
importação org.OpenQa.selênio.cromada.Cromedriver;
importação org.OpenQa.selênio.controlo remoto.Remotewebdriver;
importação org.OpenQa.selênio.controlo remoto.Identificação de sessão;
classe pública Close_browser
public static void main (string [] args)
Sistema.setProperty ("WebDriver.cromada.Driver "," C: \\ BrowserDrivers \\ Chromedriver.exe");
Chromedriver Driver = new Chromedriver ();
motorista.gerenciar().janela().maximizar();
motorista.gerenciar().Timeouts ().ImpliclyWait (duração.de segundos (10));
motorista.Get ("https: // www.eBay.com/");
Sistema.fora.println ("Abra o site do eBay no navegador Chrome");
motorista.fechar();
Sistema.fora.println ("Fechar o navegador");
ID de sessionID = ((Remotewebdriver) Driver).getSessionId ();
Sistema.fora.println ("Obtenha ID da sessão após fechar o método:" + id);

Vamos agora quebrar a linha anterior linha por linha e explicar como cada linha funciona.

Para essa implementação do cenário, usamos o navegador Chrome. Na seção inicial do código, acesse o diretório local dos drivers do Chrome antes de iniciar os drivers do navegador Chrome.

A sintaxe a seguir é usada para implementá -lo:

Sistema.setProperty ("WebDriver.cromada.Driver "," C: \\ BrowserDrivers \\ Chromedriver.exe");
Chromedriver Driver = new Chromedriver ();

Depois disso, maximizamos a janela do navegador usando a seguinte sintaxe dada:

motorista.gerenciar().janela().maximizar();

Lembre -se de que carregar todos os elementos da página da web, essa função espera até que a espera implícita seja dada para o motorista, como fornecemos em nosso código a seguir:

motorista.gerenciar().Timeouts ().ImpliclyWait (duração.de segundos (10));
motorista.Get ("https: // www.eBay.com/");

O Implictlywait () é o método para realizar espera implícita. A função de duração menciona o intervalo de tempo, o “de segundo” é a unidade de tempo, enquanto o programa aguarda 10 segundos para os elementos carregarem e abrirem o site da URL solicitado.

Depois que o site solicitado é aberto no navegador, imprima o "Abra o site do eBay no navegador Chrome" no console.

Aqui está a sintaxe para imprimir o texto no console:

Sistema.fora.println ("Abra o site do eBay no navegador Chrome");

Nesta parte do código, agora fechamos a janela do navegador atualmente aberta usando o método Close ().

Aqui está o código de sintaxe para fechar a janela atual do navegador e imprimir o texto "Fechar o navegador" no console:

motorista.fechar();
Sistema.fora.println ("Fechar o navegador");

Agora, a parte final do código refere -se à verificação se a sessão for destruída ou não:

ID de sessionID = ((Remotewebdriver) Driver).getSessionId ();

No código anterior, a classe Remotewebdriver é usada para recuperar o ID da sessão do WebDriver. Um servidor Webdriver é usado para se comunicar com um navegador da web remoto usando a classe Remotewebdriver, uma subclasse da classe Webdriver. O método getSessionId () é usado para buscar o ID da sessão se ativo.

Sistema.fora.println ("Obtenha ID da sessão após fechar o método:" + id);

O sistema.fora.println () é a função java que é usada para imprimir os valores da string e variável. Aqui, imprimimos o ID da sessão do webdriver.

Na captura de tela a seguir, podemos ver o resultado da saída do código executado:

Como você pode observar, depois de executar o código anterior, o método Close () fecha a guia atual do navegador de trabalho. Mas ainda assim, o ID da sessão do Webdriver é ativado, que é impresso no console anterior.

Abordagem 2: Feche todas as janelas do navegador e encerre a sessão do Webdriver

No selênio, o método Quit () permite que a sessão do Webdriver termine e feche todas as guias abertas. Vamos pegar o cenário, onde abriremos o navegador Chrome e fecharemos todas as guias abertas no navegador Chrome e verifique se o ID da sessão se torna nulo.

Vamos começar a implementar!

Você pode se referir a todo o código que fornecemos na seguinte ilustração. Depois disso, dividimos esse código em pequenos pedaços para que você possa entender qual função cada um serve.

Pacote de interface do pacote;
importar java.tempo.Duração;
importação org.OpenQa.selênio.cromada.Cromedriver;
importação org.OpenQa.selênio.controlo remoto.Remotewebdriver;
importação org.OpenQa.selênio.controlo remoto.Identificação de sessão;
classe pública Close_browser
public static void main (string [] args)
Sistema.setProperty ("WebDriver.cromada.Driver "," C: \\ BrowserDrivers \\ Chromedriver.exe");
Chromedriver Driver = new Chromedriver ();
motorista.gerenciar().janela().maximizar();
motorista.gerenciar().Timeouts ().ImpliclyWait (duração.de segundos (10));
motorista.Get ("https: // www.eBay.com/");
Sistema.fora.println ("Abra o site do eBay no navegador Chrome");
motorista.desistir();
Sistema.fora.println ("Fechar o navegador");
ID de sessionID = ((Remotewebdriver) Driver).getSessionId ();
Sistema.fora.println ("Obtenha ID da sessão após fechar o método:" + id);

Vamos agora quebrar a linha de código fornecida por linha e explicar como cada linha funciona.

Para esta implementação do cenário, repetimos as mesmas etapas da abordagem nº 1. Para lançar o navegador, maximize o navegador e implemente a espera implícita.

Neste pedaço de código, agora fechamos todas as janelas de navegadores abertos usando o método de abandono ().

Aqui está o código de sintaxe para fechar toda a janela dos navegadores e imprimir o texto "Fechar o navegador" no console:

motorista.desistir();
Sistema.fora.println ("Fechar o navegador");

Agora, a parte final do código refere -se à verificação se a sessão for destruída ou não:

ID de sessionID = ((Remotewebdriver) Driver).getSessionId ();

No código anterior, a classe Remotewebdriver é usada para recuperar o ID da sessão do WebDriver. Um servidor Webdriver é usado para se comunicar com um navegador da web remoto usando a classe Remotewebdriver, uma subclasse da classe Webdriver. O método getSessionId () verifica se a sessão é nula.

Sistema.fora.println ("Obtenha ID da sessão após fechar o método:" + id);

O sistema.fora.println () é a função java que é usada para imprimir os valores da string e variável. Aqui, imprimimos o ID da sessão do webdriver.

Na captura de tela a seguir, podemos ver o resultado da saída do código executado:

Como você pode observar, depois de executar o código anterior, o método Quit () fecha todas as guias do navegador aberto e destrói a sessão do WebDriver que é impressa no console anterior, que é nulo.

Conclusão

Você aprendeu os dois métodos de fechamento do navegador: Close () e Quit () métodos. Este artigo explicou ambos os métodos em detalhes sobre onde usar o método Close () e onde usar o método de Quit (). Em seguida, implementamos as duas abordagens com o exemplo para verificar se o ID da sessão do Webdriver está vivo ou não. Este tutorial é melhor para desenvolvedores iniciantes e experientes.