1、创建类文件DefWebDriver.java
import java.io.File;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.ie.InternetExplorerDriver;
import com.thoughtworks.selenium.Selenium;
public class DefWebDriver {
private static String path="\\WebDrive\\IEDriverServer.exe";
private static String baseUrl = "http://172.16.36.23";
public static WebDriver webdriver;
public static Selenium selenium;
public static JavascriptExecutor js;
public void setPath(String path) {
DefWebDriver.path=path;
}
public void setBaseUrl(String baseUrl) {
DefWebDriver.baseUrl=baseUrl;
}
public static void CreatDefWebDriver() {
File file = new File(System.getProperty("user.dir")+path);
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
if(webdriver==null)webdriver = new InternetExplorerDriver();
if(selenium==null)selenium = new WebDriverBackedSelenium(webdriver, baseUrl);
if(js==null) js = (JavascriptExecutor) webdriver;
}
}
2、在存放测试用例的每个模块的.java文件的 @BeforeSuite标识的方法内及变量部分添加
//创建selenium实例
static Selenium selenium=null;
//创建webdriver实例
static WebDriver webdriver=null;
//创建js实例
static JavascriptExecutor js=null;
//初始化Selenium部分
@BeforeSuite
public static void setupBeforeClass() {
/*设置IEWebDriver的路径和访问的URL,可以不设置
*IEWebDriver路径默认是当前项目目录下的【\\WebDrive\\IEDriverServer.exe】
*访问的URL默认是【http://172.16.36.23】
*
*/
DefWebDriver.CreatDefWebDriver();
if (webdriver == null)webdriver=DefWebDriver.webdriver;
if (selenium == null)selenium = DefWebDriver.selenium;
if (js == null)js=DefWebDriver.js;
//登录到系统中
}
3、如此设置之后,在编写测试用例脚本时,即支持RC方式也支持Webdriver方式,示例如下:
//打开登录页
selenium.open("http://172.16.36.23");
//等待3秒
Pause.PauseExec(3);
//获取页面元素
WebElement elementlogin = webdriver.findElement(By.id("loginin"));
WebElement elementaccount =webdriver.findElement(By.id("userinput"));
WebElement elementpassword = webdriver.findElement(By.id("passwordinput"));
//输入用户名和密码,两种方式
//WebDriver.selenium RC方式
// WebDriver.selenium.type("id=userinput", userInfo.GetAccount());
// WebDriver.selenium.type("id=passwordinput", userInfo.GetPassword());
//webdriver方式
elementaccount.sendKeys(userInfo.GetAccount());
elementpassword.sendKeys(userInfo.GetPassword());
//点击登录,三种方式
//直接调用js的click_login()登录
// js.executeScript("click_login()", elementlogin);
//webdriver方式的点击登录按钮
elementlogin.click();