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
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 }