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.inject.Inject;
13
14 import static com.google.common.base.Preconditions.checkNotNull;
15
16
17
18
19 public class WebDriverTimedElement implements TimedElement
20 {
21 @Inject
22 PageBinder pageBinder;
23
24 private WebDriverQueryFactory queryFactory;
25 private final WebDriverLocatable locatable;
26 private final TimeoutType defaultTimeout;
27
28
29
30
31
32
33
34 public WebDriverTimedElement(WebDriverLocatable locatable, TimeoutType defaultTimeout)
35 {
36 this.locatable = checkNotNull(locatable);
37 this.defaultTimeout = checkNotNull(defaultTimeout);
38 }
39
40 @Init
41 public void initialize()
42 {
43 queryFactory = pageBinder.bind(WebDriverQueryFactory.class, locatable);
44 }
45
46 public TimedCondition isPresent()
47 {
48 return queryFactory.isPresent(defaultTimeout);
49 }
50
51 public TimedCondition isVisible()
52 {
53 return queryFactory.isVisible(defaultTimeout);
54 }
55
56 public TimedCondition isEnabled()
57 {
58 return queryFactory.isEnabled(defaultTimeout);
59 }
60
61 public TimedCondition isSelected()
62 {
63 return queryFactory.isSelected(defaultTimeout);
64 }
65
66 public TimedCondition hasClass(final String className)
67 {
68 return queryFactory.hasClass(className, defaultTimeout);
69 }
70
71 public TimedQuery<String> getAttribute(final String name)
72 {
73 return queryFactory.getAttribute(name, defaultTimeout);
74 }
75
76 public TimedCondition hasAttribute(final String name, final String value)
77 {
78 return queryFactory.hasAttribute(name, value, defaultTimeout);
79 }
80
81 public TimedQuery<String> getText()
82 {
83 return queryFactory.getText(defaultTimeout);
84 }
85
86 public TimedCondition hasText(String text)
87 {
88 return queryFactory.hasText(text, defaultTimeout);
89 }
90
91 public TimedQuery<String> getTagName()
92 {
93
94
95 return queryFactory.getTagName(defaultTimeout);
96 }
97
98 public TimedQuery<String> getValue()
99 {
100 return queryFactory.getValue(defaultTimeout);
101 }
102
103 public TimedCondition hasValue(String value)
104 {
105 return queryFactory.hasValue(value, defaultTimeout);
106 }
107
108 @Override
109 public TimedQuery<Point> getLocation()
110 {
111 return queryFactory.getLocation(defaultTimeout);
112 }
113
114 @Override
115 public TimedQuery<Dimension> getSize()
116 {
117 return queryFactory.getSize(defaultTimeout);
118 }
119 }