package com.gx.test;
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.*;
//http://www.yiibai.com/selenium/selenium_multi_browser_testing.html
public class MultiBrowser
{
private WebDriver driver;
// private String URL = "http://www.calculator.net";
private String URL="http://www.baidu.com";
@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.setProperty("webdriver.chrome.driver", "E://Sheena//liyue_Selenium2_150818//chromedriver.exe");
System.setProperty("webdriver.chrome.bin", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\Chrome.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", "E://Sheena//liyue_Selenium2_150818//IEDriverServer.exe");
// DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
// ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
// driver = new InternetExplorerDriver(ieCapabilities);
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
String result="5";
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"为了同时在所有浏览器中执行。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Simple HTML-XML Suite">
<test name="FirefoxTest">
<parameter name="browser" value="firefox" />
<classes>
<class name="com.gx.test.MultiBrowser"/>
</classes>
</test>
<test name="ChromeTest">
<parameter name="browser" value="chrome" />
<classes>
<class name="com.gx.test.MultiBrowser"/>
</classes>
</test>
<test name="IETest">
<parameter name="browser" value="ie" />
<classes>
<class name="com.gx.test.MultiBrowser"/>
</classes>
</test>
</suite>
通过对XML文件进行右键点击执行脚本,然后选择 'Run As' >> 'TestNG' 方式,如下图所示。
输出
所有的浏览器将平行展开,结果将被打印在控制台上。
注:对于我们在IE浏览器执行成功确保复选框“启用保护模式”下的“IE选项中的安全选项卡中选中或未在所有区域中未检查。
TestNG的结果以HTML格式来查看详细的分析。