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.