Selenium - teste de vários navegadores

Os usuários podem executar scripts em vários navegadores simultaneamente. Para demonstração, usaremos o mesmo cenário que tomamos para a grade do Selenium. No exemplo do Selenium Grid, executamos os scripts remotamente; aqui iremos executar os scripts localmente.

Em primeiro lugar, certifique-se de que você tenha baixado os drivers apropriados. Consulte o capítulo "Selenium Grid" para fazer download dos drivers do IE e do Chrome.

Exemplo

Para demonstração, realizaremos calculadora de porcentagem em todos os navegadores simultaneamente.

package TestNG;

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.testng.annotations.*;

public class TestNGClass {
   private WebDriver driver;
   private String URL = "http://www.calculator.net";

   @Parameters("browser")
   @BeforeTest
   public void launchapp(String browser) {

      if (browser.equalsIgnoreCase("firefox")) {
         System.out.println(" Executing on FireFox");
         driver = new FirefoxDriver();
         driver.get(URL);
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         driver.manage().window().maximize();
      } else if (browser.equalsIgnoreCase("chrome")) {
         System.out.println(" Executing on CHROME");
         System.out.println("Executing on IE");
         System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
         driver = new ChromeDriver();
         driver.get(URL);
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         driver.manage().window().maximize();
      } else if (browser.equalsIgnoreCase("ie")) {
         System.out.println("Executing on IE");
         System.setProperty("webdriver.ie.driver", "D:\\IEDriverServer.exe");
         driver = new InternetExplorerDriver();
         driver.get(URL);
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
         driver.manage().window().maximize();
      } else {
         throw new IllegalArgumentException("The Browser Type is Undefined");
      }
   }

   @Test
   public void calculatepercent() {
      // Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();

      // Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();

      // Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");

      // Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");

      // Click Calculate Button
      driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr/td[2]/input")).click();

      // Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/span/font/b")).getText();		 

      // Print a Log In message to the screen
      System.out.println(" The Result is " + result);

      if(result.equals("5")) {
         System.out.println(" The Result is Pass");
      } else {
         System.out.println(" The Result is Fail");
      }
   }

   @AfterTest
   public void closeBrowser() {
      driver.close();
   }
}

Crie um XML que nos ajude a parametrizar o nome do navegador e não se esqueça de mencionar paralelamente = "testes" para executar em todos os navegadores simultaneamente.

Execute o script clicando com o botão direito do mouse no arquivo XML e selecione 'Executar como' >> 'TestNG' Suite conforme mostrado abaixo.

Resultado

Todo o navegador seria iniciado simultaneamente e o resultado seria impresso no console.

Note - Para executar no IE com sucesso, certifique-se de que a caixa de seleção 'Ativar Modo Protegido' na guia de segurança da 'Opção do IE' esteja marcada ou desmarcada em todas as zonas.

Os resultados do TestNG podem ser visualizados em formato HTML para análise detalhada.