how run selenium webdriver different popular browsers
Selenium suporta apenas aplicativos baseados na web e para abri-los precisamos de um navegador. Selenium pode suportar vários navegadores para automação de teste.
Neste tutorial, explicaremos como configurar drivers para os diferentes navegadores disponíveis no mercado.
Na indústria atual, existem apenas três navegadores populares que são amplamente usados, ou seja, Google Chrome, Mozilla Firefox e Internet Explorer. No entanto, o Selenium também oferece suporte a outros navegadores. Para executar nosso script em diferentes navegadores, precisamos do driver desse navegador.
=> Leia todos os tutoriais do Selenium aqui
O que você aprenderá:
- Como configurar drivers para os diferentes navegadores
- Teste entre navegadores usando Selenium WebDriver
- Conclusão
Como configurar drivers para os diferentes navegadores
Ferramenta Recomendada:
# 1) LambdaTest
Realize testes de automação Selenium em um Selenium Grid online escalonável, seguro e confiável baseado em nuvem. Acelere sua automação de teste Selenium ao mesmo tempo, aumente sua cobertura de teste testando em uma infraestrutura online de mais de 2.000 ambientes de desktop e navegador móvel.
=> Visite o site do LambdaTest
Quando começamos com a automação Selenium, nossa primeira linha de código vem como:
Driver WebDriver = novo FireFoxDriver ();
Isso significa que WebDriver é uma interface e estamos definindo uma variável de referência (driver) cujo tipo é uma interface.
Agora, qualquer objeto que atribuímos a ele deve ser uma instância de uma classe (FireFoxDriver) ou qualquer outro driver que implemente essa interface. Em nosso caso, FireFoxDriver é uma classe e a interface é WebDriver.
Quando toda a configuração do nosso driver estiver concluída, executamos qualquer comando Selenium, como:
driver.getTitle ();
Consulte a captura de tela:
melhor ferramenta de remoção de malware para windows 10
O que acontece agora é que internamente uma solicitação HTTP é criada e enviada para o driver do navegador específico que definimos, o driver do navegador usa esse servidor HTTP para obter as solicitações HTTP e determina as etapas necessárias para implementar o comando Selenium.
Nossa lógica criada é executada no navegador, então o resultado da execução é enviado de volta para o servidor HTTP e ele novamente envia de volta o status para o script de automação.
Assim, depois de definir o driver, podemos acessar todos os métodos embutidos da classe do driver, como:
- findElement ();
- fechar();
- getClass (); e muitos mais
Consulte a captura de tela:
Para acessar esses métodos, digite “ motorista. ”No editor e irá mostrar todos os métodos ou então você pode pressionar“ ctrl + espaço ”e irá mostrar os métodos.
Consulte a captura de tela:
Às vezes, os métodos embutidos não estão acessíveis quando você pressiona “ctrl + espaço”. Em seguida, você precisa verificar as configurações do caminho JAVA_HOME feitas na Variável de ambiente e certificar-se de que estão corretas.
Etapas para configurar a variável de ambiente:
- Vá para o Painel de Controle -> Clique em Sistema
- Vá para Configurações Avançadas do Sistema
- Clique no botão Variáveis de Ambiente
- Defina o caminho JAVA_HOME clicando no novo botão.
O Selenium vem com o driver padrão do Mozilla Firefox que vem no arquivo jar do Selenium WebDriver. É por isso que, para chamar o driver do Firefox, nenhuma configuração é necessária. Se quisermos usar outros navegadores, precisamos configurar suas propriedades de sistema.
Leitura recomendada => Teste Cross Browser usando Selenium Grid
Teste entre navegadores usando Selenium WebDriver
Agora, veremos a configuração e execução de drivers nos navegadores mencionados abaixo:
# 1) Mozilla Firefox
#dois) Google Chrome
# 3) Internet Explorer
# 4) Ópera
# 5) Ghost Driver ou PhantomJS
# 6) Unidade HTML
Os drivers para os navegadores mencionados (exceto PhantomJS e Unidade HTML - verifique abaixo) podem ser baixados aqui: SeleniumHQ
Supondo que todos estejam cientes dos diferentes navegadores mencionados acima, vou agora explicar o que é Motorista fantasma e Driver de unidade HTML funcionalidade e como configurá-los para seu script.
# 1) Driver da unidade HTML
Usando este driver, podemos fazer testes de navegador sem cabeça, o que significa que não há GUI para ele que você possa ver enquanto é executado internamente. E você não pode realizar todas as operações como faz em navegadores normais.
Geralmente, para teste, o driver da unidade HTML não é recomendado. No entanto, podemos usá-lo porque é mais rápido, a implementação mais leve do WebDriver é usada para gerar dados de teste, para passar o conteúdo de uma página da web para outro programa ou script.
Para usar o driver da unidade HTML, não há necessidade de instalar APIs ou arquivos jar adicionais. Você pode usá-lo assim que tiver o arquivo jar autônomo do servidor Selenium.
Consulte o código abaixo:
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
Resultado : Facebook - Faça login ou inscreva-se
PASSADO : verifyFacebookTitle
O driver da unidade HTML não é recomendado para aplicativos complexos e que usam jquery ou javascript ou HTML 5. Por padrão, ele não suporta javascript. Portanto, você tem que dar condição verdadeira para sustentá-la.
# 2) Driver PhantomJS
O navegador PhantomJS também é usado para realizar testes de navegador sem cabeça. Ele usa uma API JavaScript. Você pode usá-lo para teste de site sem cabeça e acessar páginas da web. Uma vantagem sobre o driver da unidade HTML é que ele pode capturar imagens. Isso significa que seu teste será executado em segundo plano e irá capturar as imagens.
Para usar o navegador PhantomJS com Selenium WebDriver, temos que usar e baixar o GhostDriver. É uma implementação do protocolo com fio WebDriver em JS simples para o navegador PhantomJS. Agora, na última versão do PhantomJS, eles integraram o GhostDriver com o PhantomJS. Portanto, não precisamos instalá-lo separadamente agora.
Baixe o arquivo PhantomJs.exe aqui: PhantomJs
Para executar o PhantomJS, precisamos do driver PhantomJS. Link para Download: Driver PhantomJS
melhor cliente ssh grátis para windows
E precisamos definir o arquivo de propriedade PhantomJs.binary.path, quando executamos o script.
Consulte o código abaixo:
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
Resultado : https://www.facebook.com/
PASSADO: verifyFacebookTitle
# 3) Driver Mozilla Firefox
Como executar o WebDriver no navegador Firefox:
Para chamar o driver do Firefox, não há necessidade de instalar ou configurar arquivos jar adicionais. É o driver padrão que o Selenium WebDriver suporta.
Consulte o código abaixo para execução:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
Resultado : Título da página correspondente
PASSADO : Test_Gmail_Login
# 4) Driver do Google Chrome
Como executar o WebDriver no navegador Chrome:
Para chamar o driver do Google Chrome, primeiro baixe o driver e, em seguida, defina as propriedades do sistema usando o código abaixo:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
Resultado : Bem-vindo a rediff.com
Rediff.com: compras online, rediffmail, últimas notícias da Índia, negócios, Bollywood, esportes, ações, placar de críquete ao vivo, dinheiro, críticas de filmes
PASSADO : Test_Rediff_Alert
Ler também=> Tutorial Selenium - Localizar elementos em navegadores Chrome e IE
# 5) Driver do Internet Explorer
Como executar o WebDriver no navegador IE:
Para chamar o driver do Internet Explorer, baixe o driver e defina uma propriedade do sistema.
Consulte o código abaixo:
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
Resultado : Google
PASSADO : ieDriver
# 6) Driver Opera
Para chamar o driver do Opera, baixe o driver e defina as propriedades do sistema.
Consulte o código abaixo:
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*[@id='gmail-create-account']')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
Resultado : Crie a sua conta aqui
PASSADO : operaDriver
Ler também=> Anotações TestNG em Selênio
Conclusão
Neste tutorial, falei sobre como configurar e usar drivers para vários navegadores.
Vimos como o driver da unidade HTML e o driver PhantomJS são diferentes de outros navegadores comumente usados. A razão por trás disso é que eles não são usados para navegação comum, como o Google Chrome e outros; em vez disso, eles funcionam internamente e executam nossos comandos com mais rapidez, pois não oferecem suporte a GUI. Também podemos executar scripts do lado do servidor com PhantomJS.
Agora que entendemos como configurar os drivers e fazê-los funcionar em vários navegadores, precisamos esclarecer por que estamos fazendo isso. Como todos sabem, o Selenium oferece suporte apenas para aplicativos baseados na web e, para abri-los, precisamos de um navegador.
Existem vários drivers (discutidos acima) disponíveis para abrir esses navegadores. Um WebDriver é uma interface que contém todos os métodos abstratos definidos nela. Portanto, chamamos esses métodos que são discutidos neste tutorial para realizar nossas tarefas.
Informe-nos se você tiver alguma dúvida / comentário sobre este tutorial.
Leitura recomendada
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Implementação do nosso primeiro script WebDriver - Selenium WebDriver Tutorial # 10
- Selenium FAQs
- Como lidar com alertas / pop-ups no Selenium WebDriver - Tutorial do Selenium nº 16
- Espera implícita e explícita no Selenium WebDriver (tipos de esperas de selênio)
- Guia para gerar relatórios de extensão no Selenium WebDriver
- Tutorial do GeckoDriver Selenium: como usar o GeckoDriver em projetos do Selenium