java – Selenium2和webdriver的一个很好的工作实例

我一直在使用硒1,但现在想迁移到selenium2 / webdriver.说实话,我发现有点难以从selenium2 / webdriver开始.实质上,我不知道如何在页面对象之间工作.这是我的例子:
public class LoginPage {
    private final WebDriver driver;

    public LoginPage(WebDriver driver) {
        this.driver = driver; 
    }

    public void loginAs(String username,String password) {
        driver.get("http://url_to_my_webapp");        
        driver.findElement(By.id("username")).sendKeys(username);
        driver.findElement(By.id("pwd")).sendKeys(password);
        driver.findElement(By.className("button")).submit();                  
    }

    public static void main(String[] args){
        LoginPage login = new LoginPage(new FirefoxDriver());
        login.loginAs("user","pass");
    }
}

现在,用户登录后,会发生重定向到不同的页面.据我所知,我现在应该创建一个代表当前页面的新页面对象…事实上我不知道如何?哪里可以找到一些超越“你好世界”级别的好榜样?
我该怎么继续这个例子?@H_404_6@

提前致谢!@H_404_6@

解决方法

这些网站都提供了一些例子:

http://luizfar.wordpress.com/2010/09/29/page-objects/@H_404_6@

http://www.wakaleo.com/blog/selenium-2-web-driver-the-land-where-page-objects-are-king@H_404_6@

页面提供了使用PageFactory来支持页面对象的一些细节:
http://code.google.com/p/selenium/wiki/PageFactory@H_404_6@

您可以通过为每个页面创建一个类来扩展您的示例来处理页面对象,例如:@H_404_6@

public class MainPage 
{ 
  private final WebDriver driver;  

  public MainPage(WebDriver driver) 
  {     
    this.driver = driver;  
  }   

  public void doSomething() 
  {      
    driver.findElement(By.id("something")).Click;     
  }
}

并更改loginAs以返回一个代表登录后浏览器浏览的页面的类:@H_404_6@

public MainPage loginAs(String username,String password) 
{       
    driver.get("http://url_to_my_webapp");             
    driver.findElement(By.id("username")).sendKeys(username);     
    driver.findElement(By.id("pwd")).sendKeys(password);     
    driver.findElement(By.className("button")).submit();
    // Add some error checking here for login failure
    return new MainPage(driver);                   
}

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...