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