1 package com.atlassian.pageobjects.elements;
2
3 import com.atlassian.pageobjects.PageBinder;
4 import com.atlassian.pageobjects.binder.Init;
5 import com.atlassian.pageobjects.elements.query.TimedCondition;
6 import com.atlassian.pageobjects.elements.query.TimedQuery;
7 import com.atlassian.pageobjects.elements.query.webdriver.WebDriverQueryFactory;
8 import com.atlassian.pageobjects.elements.timeout.TimeoutType;
9 import org.openqa.selenium.Dimension;
10 import org.openqa.selenium.Point;
11
12 import javax.annotation.Nonnull;
13 import javax.inject.Inject;
14 import java.util.Set;
15
16 import static com.atlassian.webdriver.Elements.ATTRIBUTE_ID;
17 import static com.google.common.base.Preconditions.checkNotNull;
18
19
20
21
22 public class WebDriverTimedElement implements TimedElement
23 {
24 @Inject
25 PageBinder pageBinder;
26
27 private WebDriverQueryFactory queryFactory;
28 private final WebDriverLocatable locatable;
29 private final TimeoutType defaultTimeout;
30
31
32
33
34
35
36
37 public WebDriverTimedElement(WebDriverLocatable locatable, TimeoutType defaultTimeout)
38 {
39 this.locatable = checkNotNull(locatable);
40 this.defaultTimeout = checkNotNull(defaultTimeout);
41 }
42
43 @Init
44 public void initialize()
45 {
46 queryFactory = pageBinder.bind(WebDriverQueryFactory.class, locatable);
47 }
48
49 public TimedCondition isPresent()
50 {
51 return queryFactory.isPresent(defaultTimeout);
52 }
53
54 public TimedCondition isVisible()
55 {
56 return queryFactory.isVisible(defaultTimeout);
57 }
58
59 public TimedCondition isEnabled()
60 {
61 return queryFactory.isEnabled(defaultTimeout);
62 }
63
64 public TimedCondition isSelected()
65 {
66 return queryFactory.isSelected(defaultTimeout);
67 }
68
69 @Nonnull
70 @Override
71 public TimedQuery<String> getId()
72 {
73 return queryFactory.getAttribute(ATTRIBUTE_ID);
74 }
75
76 @Nonnull
77 @Override
78 public TimedQuery<Set<String>> getCssClasses()
79 {
80 return queryFactory.getCssClasses(defaultTimeout);
81 }
82
83 public TimedCondition hasClass(final String className)
84 {
85 return queryFactory.hasClass(className, defaultTimeout);
86 }
87
88 public TimedQuery<String> getAttribute(final String name)
89 {
90 return queryFactory.getAttribute(name, defaultTimeout);
91 }
92
93 public TimedCondition hasAttribute(final String name, final String value)
94 {
95 return queryFactory.hasAttribute(name, value, defaultTimeout);
96 }
97
98 public TimedQuery<String> getText()
99 {
100 return queryFactory.getText(defaultTimeout);
101 }
102
103 public TimedCondition hasText(String text)
104 {
105 return queryFactory.hasText(text, defaultTimeout);
106 }
107
108 public TimedQuery<String> getTagName()
109 {
110
111
112 return queryFactory.getTagName(defaultTimeout);
113 }
114
115 public TimedQuery<String> getValue()
116 {
117 return queryFactory.getValue(defaultTimeout);
118 }
119
120 public TimedCondition hasValue(String value)
121 {
122 return queryFactory.hasValue(value, defaultTimeout);
123 }
124
125 @Override
126 public TimedQuery<Point> getLocation()
127 {
128 return queryFactory.getLocation(defaultTimeout);
129 }
130
131 @Override
132 public TimedQuery<Dimension> getSize()
133 {
134 return queryFactory.getSize(defaultTimeout);
135 }
136 }