forked from php-webdriver/php-webdriver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWebDriverElement.php
144 lines (126 loc) · 4.11 KB
/
WebDriverElement.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
namespace Facebook\WebDriver;
/**
* Interface for an HTML element in the WebDriver framework.
*/
interface WebDriverElement extends WebDriverSearchContext
{
/**
* If this element is a TEXTAREA or text INPUT element, this will clear the value.
*
* @return WebDriverElement The current instance.
*/
public function clear();
/**
* Click this element.
*
* @return WebDriverElement The current instance.
*/
public function click();
/**
* Get the value of the given attribute of the element.
* Attribute is meant what is declared in the HTML markup of the element.
* To read a value of a IDL "JavaScript" property (like `innerHTML`), use `getDomProperty()` method.
*
* @param string $attribute_name The name of the attribute.
* @return string|null The value of the attribute.
*/
public function getAttribute($attribute_name);
/*
* Gets the value of a IDL JavaScript property of this element (for example `innerHTML`, `tagName` etc.).
*
* @see https://developer.mozilla.org/en-US/docs/Glossary/IDL
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element#properties
* @param string $propertyName
* @return string|null The property's current value or null if the value is not set or the property does not exist.
* @todo Add in next major release (BC)
*/
// public function getDomProperty($propertyName);
/**
* Get the value of a given CSS property.
*
* @param string $css_property_name The name of the CSS property.
* @return string The value of the CSS property.
*/
public function getCSSValue($css_property_name);
/**
* Get the location of element relative to the top-left corner of the page.
*
* @return WebDriverPoint The location of the element.
*/
public function getLocation();
/**
* Try scrolling the element into the view port and return the location of
* element relative to the top-left corner of the page afterwards.
*
* @return WebDriverPoint The location of the element.
*/
public function getLocationOnScreenOnceScrolledIntoView();
/**
* Get the size of element.
*
* @return WebDriverDimension The dimension of the element.
*/
public function getSize();
/**
* Get the tag name of this element.
*
* @return string The tag name.
*/
public function getTagName();
/**
* Get the visible (i.e. not hidden by CSS) innerText of this element,
* including sub-elements, without any leading or trailing whitespace.
*
* @return string The visible innerText of this element.
*/
public function getText();
/**
* Is this element displayed or not? This method avoids the problem of having
* to parse an element's "style" attribute.
*
* @return bool
*/
public function isDisplayed();
/**
* Is the element currently enabled or not? This will generally return true
* for everything but disabled input elements.
*
* @return bool
*/
public function isEnabled();
/**
* Determine whether or not this element is selected or not.
*
* @return bool
*/
public function isSelected();
/**
* Simulate typing into an element, which may set its value.
*
* @param mixed $value The data to be typed.
* @return WebDriverElement The current instance.
*/
public function sendKeys($value);
/**
* If this current element is a form, or an element within a form, then this
* will be submitted to the remote server.
*
* @return WebDriverElement The current instance.
*/
public function submit();
/**
* Get the opaque ID of the element.
*
* @return string The opaque ID.
*/
public function getID();
/**
* Take screenshot of a specific element.
*
* @param string $save_as The path of the screenshot to be saved.
* @return string The screenshot in PNG format.
* @todo Add in next major release (BC)
*/
//public function takeElementScreenshot($save_as = null);
}