1   package com.atlassian.pageobjects.elements.test.pageobjects.page;
2   
3   import com.atlassian.pageobjects.Page;
4   import com.atlassian.pageobjects.elements.ElementBy;
5   import com.atlassian.pageobjects.elements.PageElement;
6   import com.atlassian.pageobjects.elements.PageElementFinder;
7   
8   import javax.inject.Inject;
9   
10  import static com.atlassian.pageobjects.elements.query.Poller.waitUntilTrue;
11  
12  /**
13   * Represents the dynamicpage.html page
14   */
15  public class DynamicPage implements Page
16  {
17      @ElementBy(id = "nameTextBox")
18      PageElement nameTextBox;
19  
20      @ElementBy(id = "helloWorldButton")
21      PageElement helloWorldButton;
22  
23      @ElementBy(id = "messageSpan")
24      PageElement messageSpan;
25  
26      @ElementBy(id = "createFieldSetButton")
27      PageElement createFieldSetButton;
28  
29      @ElementBy(id = "createFieldSetSlowlyButton")
30      PageElement createFieldSetButtonSlowly;
31  
32      @ElementBy(id = "removeAndcreateFieldSetSlowlyButton")
33      PageElement removeAndcreateFieldSetButtonSlowly;
34  
35      @Inject
36      PageElementFinder elementFinder;
37  
38      public String getUrl()
39      {
40           return "/html/dynamicpage.html";
41      }
42  
43      public DynamicPage createFieldSet()
44      {
45          createFieldSetButton.click();
46          waitUntilTrue(nameTextBox.timed().isVisible());
47          return this;
48      }
49  
50      public DynamicPage createFieldSetSlowly()
51      {
52          createFieldSetButtonSlowly.click();
53          return this;
54      }
55  
56      public DynamicPage removeAndCreateFieldSetSlowly()
57      {
58          removeAndcreateFieldSetButtonSlowly.click();
59          return this;
60      }
61  
62      public DynamicPage helloWorld(String name)
63      {
64          nameTextBox.clear().type(name);
65          helloWorldButton.click();
66          waitUntilTrue(messageSpan.timed().isVisible());
67          return this;
68      }
69  
70      public String getMessage()
71      {
72          return messageSpan.getText();
73      }
74  
75      public PageElementFinder getElementFinder()
76      {
77          return elementFinder;
78      }
79  }