Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
add wait until logic around dynamic field
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Jul 16, 2013
1 parent bc81b3e commit 49e1ee4
Showing 1 changed file with 24 additions and 6 deletions.
Expand Up @@ -28,6 +28,7 @@
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.zanata.page.AbstractPage;
import com.google.common.base.Predicate;

/**
* @author Damian Jansen <a href="mailto:djansen@redhat.com">djansen@redhat.com</a>
Expand All @@ -36,9 +37,6 @@
public class ManageUserAccountPage extends AbstractPage
{

@FindBy(id = "userdetailForm:usernameField:username")
private WebElement usernameField;

@FindBy(id = "userdetailForm:passwordField:password")
private WebElement passwordField;

Expand All @@ -56,6 +54,9 @@ public class ManageUserAccountPage extends AbstractPage

private Map<String, String> roleMap;

// username field will trigger ajax call and become stale
private By usernameBy = By.id("userdetailForm:usernameField:username");

public ManageUserAccountPage(WebDriver driver)
{
super(driver);
Expand All @@ -67,9 +68,18 @@ public ManageUserAccountPage(WebDriver driver)
roleMap.put("user", "4");
}

public ManageUserAccountPage enterUsername(String username)
public ManageUserAccountPage enterUsername(final String username)
{
usernameField.sendKeys(username);
waitForTenSec().until(new Predicate<WebDriver>()
{
@Override
public boolean apply(WebDriver input)
{
WebElement usernameField = input.findElement(usernameBy);
usernameField.sendKeys(username);
return input.findElement(usernameBy).getAttribute("value").equals(username);
}
});
return new ManageUserAccountPage(getDriver());
}

Expand Down Expand Up @@ -117,7 +127,15 @@ public ManageUserPage cancelEditUser()

public ManageUserAccountPage clearFields()
{
usernameField.clear();
waitForTenSec().until(new Predicate<WebDriver>()
{
@Override
public boolean apply(WebDriver input)
{
input.findElement(usernameBy).clear();
return input.findElement(usernameBy).getAttribute("value").isEmpty();
}
});
passwordField.clear();
passwordConfirmField.clear();
return new ManageUserAccountPage(getDriver());
Expand Down

0 comments on commit 49e1ee4

Please sign in to comment.