位置:首页 > 软件测试 > Selenium在线教程 > 多浏览器测试

多浏览器测试

多浏览器测试

用户可以同时执行多个浏览器中的脚本。为了演示,我们将充分利用我们已经采取了Selenium 网格相同的场景。Selenium 网格的例子,我们已经在远程执行脚本,在这里将在本地执行脚本。

即使对于这一点,我们必须确保我们有适当的驱动程序下载。请参考Selenium 网格章下载IE和Chrome浏览器的驱动程序。

示例

我们将在所有浏览器中同时执行%的计算用于演示目的。

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()
  {
	driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();     	// Click on Math Calculators  
	driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();     // Click on Percent Calculators
    driver.findElement(By.id("cpar1")).sendKeys("10"); 		// Enter value 10 in the first number of the percent Calculator
    driver.findElement(By.id("cpar2")).sendKeys("50");		// Enter value 50 in the second number of the percent Calculator    
    driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();	    // Click Calculate Button
    String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();		    // Get the Result Text based on its xpath    
    System.out.println(" The Result is " + result);					//Print a Log In message to the screen
        
    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();	    
   }
}

创建一个XML这将有助于我们在参数设置浏览器的名字,不要忘记提及 parallel="tests"为了同时在所有浏览器中执行。

selenium_ide_169

通过对XML文件进行右键点击执行脚本,然后选择 'Run As' >> 'TestNG' 方式,如下图所示。

selenium_ide_139

输出

所有的浏览器将平行展开,结果将被打印在控制台上。

注:对于我们在IE浏览器执行成功确保复选框“启用保护模式”下的“IE选项中的安全选项卡中选中或未在所有区域中未检查。

selenium_ide_170

TestNG的结果以HTML格式来查看详细的分析。

selenium_ide_171