@WaitUntil
 public void waitForSpeakeasyInit() {
   driver.waitUntilElementIsLocated(By.id("speakeasy-loaded"));
   final WebElement loaded = driver.findElement(By.id("speakeasy-loaded"));
   driver.waitUntil(
       new Function() {
         public Object apply(Object from) {
           return "".equals(loaded.getText());
         }
       });
 }
 public void chooseAssignee(String assignee) {
   assigneeField.click();
   assigneeField.sendKeys("firfi");
   try {
     Thread.sleep(1000);
   } catch (InterruptedException e) {
     e.printStackTrace(); // To change body of catch statement use File | Settings | File
     // Templates.
   }
   assigneeField.sendKeys(Keys.ENTER);
   webDriver.waitUntilElementIsLocated(By.id("pressure-link"));
 }
 public SpeakeasyUserPage restoreEnabledPlugins() {
   driver.findElement(By.id("restore-enabled")).click();
   driver.waitUntilElementIsLocated(By.className("success"));
   return pageBinder.navigateToAndBind(SpeakeasyUserPage.class);
 }
 public SpeakeasyUserPage unsubscribeFromAllPlugins() {
   driver.findElement(By.id("unsubscribe-all")).click();
   driver.waitUntilElementIsLocated(By.className("success"));
   return pageBinder.navigateToAndBind(SpeakeasyUserPage.class);
 }
 @WaitUntil
 void assigneeFieldIsPresent() {
   webDriver.waitUntilElementIsLocated(By.id("assignee-field"));
 }