I\'ve been using selenium 1, but now want to migrate to selenium2/webdriver. To be honest, I find a little bit difficult to start with selenium2/webdriver. In essence I don\
These sites both give some examples:
http://luizfar.wordpress.com/2010/09/29/page-objects/
http://www.wakaleo.com/blog/selenium-2-web-driver-the-land-where-page-objects-are-king
This page gives some details on using PageFactory to support page objects: http://code.google.com/p/selenium/wiki/PageFactory
You could extend your example to work with page objects by creating a class for each page, e.g.:
public class MainPage
{
private final WebDriver driver;
public MainPage(WebDriver driver)
{
this.driver = driver;
}
public void doSomething()
{
driver.findElement(By.id("something")).Click;
}
}
and changing loginAs to return a class that represents the page that the browser navigates to after login:
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);
}