要使用selenium2的pom依赖如下
org.seleniumhq.selenium selenium-chrome-driver 2.7.0 org.seleniumhq.selenium selenium-support 2.7.0
新建一个baidu的首页的页面对象,里面有各个WebElement元素。
import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.How; public class BaiduSearchPage { // Here's the element private WebElement kw;//关键字的输入 private WebElement su;//提交表单 @FindBy(how = How.NAME, using = "tj_login") private WebElement tj_login; //百度用户登录用户名显示 private WebElement s_username_top; //点击登录操作 public void linkLogin(){ tj_login.click(); } //获取登录后用户名 public String getUsername(){ return s_username_top.getText(); } //搜索关键字 public void searchFor(String text) { // And here we use it. Note that it looks like we've // not properly instantiated it yet.... kw.sendKeys(text); su.submit(); } }
登录页面
import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.How; public class BaiduLoginPage { @FindBy(how = How.NAME, using = "username") private WebElement username_normal; private WebElement normModPsp; @FindBy(how = How.XPATH, using = "/html/body/center/div/div[2]/div/table/form") private WebElement login; public void login(String username, String passwd) { username_normal.sendKeys(username); normModPsp.sendKeys(passwd); login.submit(); } }
测试代码如下
import org.junit.Assert; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.PageFactory; public class AppTest { @Test public void testindex() { WebDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com/"); BaiduSearchPage page = PageFactory.initElements(driver, BaiduSearchPage.class); page.searchFor("koubei"); Assert.assertEquals("百度搜索_koubei", driver.getTitle()); driver.close(); } @Test public void testlogin() { WebDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com/"); BaiduSearchPage baiduSearchPage =PageFactory.initElements(driver, BaiduSearchPage.class); baiduSearchPage.linkLogin(); BaiduLoginPage page = PageFactory.initElements(driver, BaiduLoginPage.class); page.login("username", "passwd"); Assert.assertEquals("username", baiduSearchPage.getUsername()); Assert.assertEquals("百度一下,你就知道", driver.getTitle()); driver.close(); }
这里使用chrome主要是因为启动比firefox快一点 需要在http://code.google.com/p/chromium/downloads/list 下一个chromedriver 并且要把path中