@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 PressureDialog gotoPressureDialog() {
   WebElement pressureLink = webDriver.findElement(By.id("pressure-link"));
   Actions builder = new Actions(webDriver);
   System.out.println(pressureLink.getAttribute("href"));
   builder.moveToElement(pressureLink).perform();
   System.out.println(pressureLink.getAttribute("href"));
   pressureLink.click();
   return pageBinder.bind(PressureDialog.class);
 }
 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 boolean isFavorite(String pluginKey) {
   WebElement pluginRow = getPluginRow(pluginKey);
   return driver.elementIsVisible(By.className("favorite-icon"));
 }
 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);
 }
 public boolean canCreateExtension() {
   return driver.elementExists(By.id("sp-top-bar"));
 }
 public InstallDialog openInstallDialog() throws IOException {
   driver.findElement(By.id("sp-install")).click();
   return pageBinder.bind(InstallDialog.class);
 }
 @WaitUntil
 void assigneeFieldIsPresent() {
   webDriver.waitUntilElementIsLocated(By.id("assignee-field"));
 }