1 package com.atlassian.webdriver.confluence.page;
2
3 import com.atlassian.pageobjects.Page;
4 import com.atlassian.pageobjects.page.HomePage;
5 import com.atlassian.pageobjects.page.LoginPage;
6 import org.openqa.selenium.WebElement;
7 import org.openqa.selenium.support.FindBy;
8
9
10
11
12
13
14 public class ConfluenceLoginPage extends ConfluenceAbstractPage implements LoginPage
15 {
16 public static final String URI = "/login.action";
17
18 @FindBy (id = "os_username")
19 private WebElement usernameField;
20
21 @FindBy (id = "os_password")
22 private WebElement passwordField;
23
24 @FindBy (id = "os_cookie")
25 private WebElement rememberMeTickBox;
26
27 @FindBy (name = "loginform")
28 private WebElement loginForm;
29
30 public String getUrl()
31 {
32 return URI;
33 }
34
35 public <M extends Page> M login(String username, String password, Class<M> nextPage)
36 {
37 return login(username, password, false, nextPage);
38 }
39
40 public <M extends Page> M loginAsSysAdmin(Class<M> nextPage)
41 {
42 return login("admin", "admin", nextPage);
43 }
44
45 public <M extends Page> M login(String username, String password, boolean rememberMe, Class<M> nextPage)
46 {
47 usernameField.sendKeys(username);
48 passwordField.sendKeys(password);
49
50 if (rememberMe)
51 {
52 rememberMeTickBox.click();
53 }
54
55 loginForm.submit();
56
57 return HomePage.class.isAssignableFrom(nextPage) ? pageBinder.bind(nextPage) : pageBinder.navigateToAndBind(nextPage);
58 }
59
60 }