8ec727c1
曹明
初始化代码提交
|
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
## Codeception\Util\Locator
Set of useful functions for using CSS and XPath locators.
Please check them before writing complex functional or acceptance tests.
#### combine()
*public static* combine($selector1, $selector2)
Applies OR operator to any number of CSS or XPath selectors.
You can mix up CSS and XPath selectors here.
```php
<?php
use \Codeception\Util\Locator;
$I->see('Title', Locator::combine('h1','h2','h3'));
?>
```
This will search for `Title` text in either `h1`, `h2`, or `h3` tag.
You can also combine CSS selector with XPath locator:
```php
<?php
use \Codeception\Util\Locator;
$I->fillField(Locator::combine('form input[type=text]','//form/textarea[2]'), 'qwerty');
?>
```
As a result the Locator will produce a mixed XPath value that will be used in fillField action.
* `static`
* `param` $selector1
* `param` $selector2
* `throws` \Exception
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L50)
#### contains()
*public static* contains($element, $text)
Locates an element containing a text inside.
Either CSS or XPath locator can be passed, however they will be converted to XPath.
```php
<?php
use Codeception\Util\Locator;
Locator::contains('label', 'Name'); // label containing name
Locator::contains('div[@contenteditable=true]', 'hello world');
```
* `param` $element
* `param` $text
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L257)
#### elementAt()
*public static* elementAt($element, $position)
Locates element at position.
Either CSS or XPath locator can be passed as locator,
position is an integer. If a negative value is provided, counting starts from the last element.
First element has index 1
```php
<?php
use Codeception\Util\Locator;
Locator::elementAt('//table/tr', 2); // second row
Locator::elementAt('//table/tr', -1); // last row
Locator::elementAt('table#grind>tr', -2); // previous than last row
```
* `param string` $element CSS or XPath locator
* `param int` $position xpath index
* `return` mixed
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L283)
#### find()
*public static* find($element, array $attributes)
Finds element by it's attribute(s)
```php
<?php
use \Codeception\Util\Locator;
$I->seeElement(Locator::find('img', ['title' => 'diagram']));
```
* `static`
* `param` $element
* `param` $attributes
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L159)
#### firstElement()
*public static* firstElement($element)
Locates first element of group elements.
Either CSS or XPath locator can be passed as locator,
Equal to `Locator::elementAt($locator, 1)`
```php
<?php
use Codeception\Util\Locator;
Locator::firstElement('//table/tr');
```
* `param` $element
* `return` mixed
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L313)
#### href()
*public static* href($url)
Matches the *a* element with given URL
```php
<?php
use \Codeception\Util\Locator;
$I->see('Log In', Locator::href('/login.php'));
?>
```
* `static`
* `param` $url
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L79)
#### humanReadableString()
*public static* humanReadableString($selector)
Transforms strict locator, \Facebook\WebDriver\WebDriverBy into a string represenation
* `param` $selector
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L346)
#### isCSS()
*public static* isCSS($selector)
Checks that provided string is CSS selector
```php
<?php
Locator::isCSS('#user .hello') => true
Locator::isCSS('body') => true
Locator::isCSS('//body/p/user') => false
```
* `param` $selector
* `return` bool
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L186)
#### isClass()
*public static* isClass($class)
Checks that a string is valid CSS class
* `param` $class
* `return` bool
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L235)
#### isID()
*public static* isID($id)
Checks that a string is valid CSS ID
* `param` $id
* `return` bool
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L224)
#### isXPath()
*public static* isXPath($locator)
Checks that locator is an XPath
```php
<?php
Locator::isCSS('#user .hello') => false
Locator::isCSS('body') => false
Locator::isCSS('//body/p/user') => true
```
* `param` $locator
* `return` bool
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L210)
#### lastElement()
*public static* lastElement($element)
Locates last element of group elements.
Either CSS or XPath locator can be passed as locator,
Equal to `Locator::elementAt($locator, -1)`
```php
<?php
use Codeception\Util\Locator;
Locator::lastElement('//table/tr');
```
* `param` $element
* `return` mixed
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L334)
#### option()
*public static* option($value)
Matches option by text:
```php
<?php
use Codeception\Util\Locator;
$I->seeElement(Locator::option('Male'), '#select-gender');
```
* `param` $value
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L124)
#### tabIndex()
*public static* tabIndex($index)
Matches the element with given tab index
Do you often use the `TAB` key to navigate through the web page? How do your site respond to this navigation?
You could try to match elements by their tab position using `tabIndex` method of `Locator` class.
```php
<?php
use \Codeception\Util\Locator;
$I->fillField(Locator::tabIndex(1), 'davert');
$I->fillField(Locator::tabIndex(2) , 'qwerty');
$I->click('Login');
?>
```
* `static`
* `param` $index
* `return` string
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L105)
#### toXPath()
*protected static* toXPath($selector)
[See source](https://github.com/Codeception/Codeception/blob/2.3/src/Codeception/Util/Locator.php#L129)
<p> </p><div class="alert alert-warning">Reference is taken from the source code. <a href="https://github.com/Codeception/Codeception/blob/2.3/src//Codeception/Util/Locator.php">Help us to improve documentation. Edit module reference</a></div>
|