首先创建一个basecase 类
package seleniumCase;
import org.apache.log4j.Logger;
import org.apache.log4j.jmx.LoggerDynamicMBean;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class BaseCase {
private static Logger logger=Logger.getLogger(BaseCase.class);
public WebDriver getDriver(String driverType) {
WebDriver driver;
if(driverType.equalsIgnoreCase("chrome")) {
logger.debug("将要进行谷歌浏览器初始化");
System.setProperty("webdriver.chrome.driver",
"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
driver=new ChromeDriver();
return driver;
}else if(driverType.equalsIgnoreCase("firefox")){
logger.debug("将要进行火狐浏览器初始化");
System.setProperty("webdriver.gecko.driver","D:\\webdriver\\geckodriver\\geckodriver.exe");
driver=new FirefoxDriver();
return driver;
}
else {
logger.error("失败:没有找到相关类型的浏览器驱动");
return null;
}
}
}
然后在testNG或者junit类中beforeClass方法中编写代码
package seleniumCase;
import org.testng.annotations.Test;
import Help.HaveOrNo;
import seleniumHandle.LoginHandle;
import seleniumTest.WebDriverA;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.AssertJUnit;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.AfterTest;
public class LoginCase1 extends BaseCase{
static Logger logger = Logger.getLogger(LoginCase1.class);
WebDriver driver;
WebDriverWait wait;
HaveOrNo checkElement = new HaveOrNo();
LoginHandle loginHandle;
@Parameters({"userName","passWord","url"})
@Test
public void login(String userName,String passWord,String url) {
driver.get(url);
logger.debug("浏览器打开成功");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("afterMethod");
}
@Parameters({"browser"})
@BeforeClass
public void beforeClass(String browser) {
PropertyConfigurator.configure("log4j.properties");
BaseCase baseCase=new BaseCase();
driver =baseCase.getDriver(browser);
driver.manage().window().maximize();
wait = new WebDriverWait(driver, 3000);
loginHandle = new LoginHandle(driver);
logger.debug("浏览器driver初始化成功");
}
@AfterClass
public void afterClass() {
driver.close();
System.out.println("afterClass");
}
@BeforeTest
public void beforeTest() {
System.out.println("beforeTest");
}
@AfterTest
public void afterTest() {
System.out.println("afterTest");
}
}
最后设置testNg.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test thread-count="5" name="Test">
<parameter name="passWord" value="1gggg" />
<parameter name="userName" value="13437868119" />
<parameter name="url" value="https://www.imooc.com" />
<parameter name="browser" value="chrome"/>
<classes>
<class name="seleniumCase.LoginCase1">
<methods>
<include name="login"></include>
</methods>
</class>
</classes>
</test> <!-- Test -->
<test thread-count="5" name="Test1">
<parameter name="passWord" value="1gggg" />
<parameter name="userName" value="13437868119" />
<parameter name="url" value="https://www.imooc.com" />
<parameter name="browser" value="firefox"/>
<classes>
<class name="seleniumCase.LoginCase1">
<methods>
<include name="login"></include>
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->