Selenio - Test multi browser
Gli utenti possono eseguire script in più browser contemporaneamente. A scopo dimostrativo, useremo lo stesso scenario che avevamo preso per Selenium Grid. Nell'esempio Selenium Grid, abbiamo eseguito gli script in remoto; qui eseguiremo gli script localmente.
Prima di tutto, assicurati di aver scaricato i driver appropriati. Fare riferimento al capitolo "Selenium Grid" per scaricare i driver IE e Chrome.
Esempio
A scopo dimostrativo, eseguiremo il calcolo delle percentuali in tutti i browser contemporaneamente.
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();
}
}
Crea un XML che ci aiuterà a parametrizzare il nome del browser e non dimenticare di menzionare parallel = "test" per eseguirlo contemporaneamente in tutti i browser.
Esegui lo script facendo clic con il pulsante destro del mouse sul file XML e seleziona "Esegui come" >> Suite "TestNG" come mostrato di seguito.
Produzione
Tutto il browser verrebbe avviato contemporaneamente e il risultato verrebbe stampato nella console.
Note - Per eseguire correttamente su IE, assicurarsi che la casella di controllo "Abilita modalità protetta" nella scheda di sicurezza di "Opzione IE" sia selezionata o deselezionata in tutte le zone.
I risultati di TestNG possono essere visualizzati in formato HTML per un'analisi dettagliata.