`
yangzx554
  • 浏览: 19647 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

selenium2入门

阅读更多
http://code.google.com/p/selenium/是开源的自动化测试框架,支撑主流的所有的游览器,支持多语言开发,

要使用selenium2的pom依赖如下
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>2.7.0</version>
        </dependency>

新建一个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中
分享到:
评论
2 楼 ljl961890233bear 2014-09-23  
thinkdeeply 写道
你好,有个问题,想请教你一下.
在我启动ChromeDriver后,chrome已经打开了,然后程序就会报错.ie,firefox没有这问题.我的chrome是在线安装的.

Exception in thread "main" org.openqa.selenium.WebDriverException: Error communicating with the remote browser. It may have died.
Build info: version: '2.14.0', revision: 'unknown', time: '2011-11-29 13:13:16'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_10-rc2'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:396)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:115)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:76)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:120)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:109)
at com.caribe.stone.wd.SeleniumTest.main(SeleniumTest.java:23)
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for ChromeDriver server to start.
Build info: version: '2.14.0', revision: 'unknown', time: '2011-11-29 13:13:16'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_10-rc2'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.chrome.ChromeDriverService.start(ChromeDriverService.java:143)
at org.openqa.selenium.chrome.ChromeCommandExecutor.execute(ChromeCommandExecutor.java:46)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:382)
... 5 more
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:41201/status, http://localhost:41201/healthz] to be available after 20004 ms

我的浏览器也是这样子,经常出现这样的case,但是在别人电脑上跑就是ok的,可能是浏览器版本的问题。
1 楼 thinkdeeply 2012-02-15  
你好,有个问题,想请教你一下.
在我启动ChromeDriver后,chrome已经打开了,然后程序就会报错.ie,firefox没有这问题.我的chrome是在线安装的.

Exception in thread "main" org.openqa.selenium.WebDriverException: Error communicating with the remote browser. It may have died.
Build info: version: '2.14.0', revision: 'unknown', time: '2011-11-29 13:13:16'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_10-rc2'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:396)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:115)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:76)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:120)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:109)
at com.caribe.stone.wd.SeleniumTest.main(SeleniumTest.java:23)
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for ChromeDriver server to start.
Build info: version: '2.14.0', revision: 'unknown', time: '2011-11-29 13:13:16'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_10-rc2'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.chrome.ChromeDriverService.start(ChromeDriverService.java:143)
at org.openqa.selenium.chrome.ChromeCommandExecutor.execute(ChromeCommandExecutor.java:46)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:382)
... 5 more
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:41201/status, http://localhost:41201/healthz] to be available after 20004 ms

相关推荐

Global site tag (gtag.js) - Google Analytics