Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2

    
3
<apidoc>
4

    
5
<top>Defines an object that runs Selenium commands.
6

    
7
<h3><a name="locators"></a>Element Locators</h3>
8
<p>
9
Element Locators tell Selenium which HTML element a command refers to.
10
The format of a locator is:</p>
11
<blockquote>
12
<em>locatorType</em><strong>=</strong><em>argument</em>
13
</blockquote>
14

    
15
<p>
16
We support the following strategies for locating elements:
17
</p>
18

    
19
<ul>
20
<li><strong>identifier</strong>=<em>id</em>: 
21
Select the element with the specified &#64;id attribute. If no match is
22
found, select the first element whose &#64;name attribute is <em>id</em>.
23
(This is normally the default; see below.)</li>
24
<li><strong>id</strong>=<em>id</em>:
25
Select the element with the specified &#64;id attribute.</li>
26

    
27
<li><strong>name</strong>=<em>name</em>:
28
Select the first element with the specified &#64;name attribute.
29
<ul class="first last simple">
30
<li>username</li>
31
<li>name=username</li>
32
</ul>
33

    
34
<p>The name may optionally be followed by one or more <em>element-filters</em>, separated from the name by whitespace.  If the <em>filterType</em> is not specified, <strong>value</strong> is assumed.</p>
35

    
36
<ul class="first last simple">
37
<li>name=flavour value=chocolate</li>
38
</ul>
39
</li>
40
<li><strong>dom</strong>=<em>javascriptExpression</em>: 
41

    
42
Find an element by evaluating the specified string.  This allows you to traverse the HTML Document Object
43
Model using JavaScript.  Note that you must not return a value in this string; simply make it the last expression in the block.
44
<ul class="first last simple">
45
<li>dom=document.forms['myForm'].myDropdown</li>
46
<li>dom=document.images[56]</li>
47
<li>dom=function foo() { return document.links[1]; }; foo();</li>
48
</ul>
49

    
50
</li>
51

    
52
<li><strong>xpath</strong>=<em>xpathExpression</em>: 
53
Locate an element using an XPath expression.
54
<ul class="first last simple">
55
<li>xpath=//img[&#64;alt='The image alt text']</li>
56
<li>xpath=//table[&#64;id='table1']//tr[4]/td[2]</li>
57
<li>xpath=//a[contains(&#64;href,'#id1')]</li>
58
<li>xpath=//a[contains(&#64;href,'#id1')]/&#64;class</li>
59
<li>xpath=(//table[&#64;class='stylee'])//th[text()='theHeaderText']/../td</li>
60
<li>xpath=//input[&#64;name='name2' and &#64;value='yes']</li>
61
<li>xpath=//*[text()="right"]</li>
62

    
63
</ul>
64
</li>
65
<li><strong>link</strong>=<em>textPattern</em>:
66
Select the link (anchor) element which contains text matching the
67
specified <em>pattern</em>.
68
<ul class="first last simple">
69
<li>link=The link text</li>
70
</ul>
71

    
72
</li>
73

    
74
<li><strong>css</strong>=<em>cssSelectorSyntax</em>:
75
Select the element using css selectors. Please refer to <a href="http://www.w3.org/TR/REC-CSS2/selector.html">CSS2 selectors</a>, <a href="http://www.w3.org/TR/2001/CR-css3-selectors-20011113/">CSS3 selectors</a> for more information. You can also check the TestCssLocators test in the selenium test suite for an example of usage, which is included in the downloaded selenium core package.
76
<ul class="first last simple">
77
<li>css=a[href="#id3"]</li>
78
<li>css=span#firstChild + span</li>
79
</ul>
80
<p>Currently the css selector locator supports all css1, css2 and css3 selectors except namespace in css3, some pseudo classes(:nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :visited, :hover, :active, :focus, :indeterminate) and pseudo elements(::first-line, ::first-letter, ::selection, ::before, ::after). </p>
81
</li>
82
</ul>
83

    
84
<p>
85
Without an explicit locator prefix, Selenium uses the following default
86
strategies:
87
</p>
88

    
89
<ul class="simple">
90
<li><strong>dom</strong>, for locators starting with &quot;document.&quot;</li>
91
<li><strong>xpath</strong>, for locators starting with &quot;//&quot;</li>
92
<li><strong>identifier</strong>, otherwise</li>
93
</ul>
94

    
95
<h3><a name="element-filters">Element Filters</a></h3>
96
<blockquote>
97
<p>Element filters can be used with a locator to refine a list of candidate elements.  They are currently used only in the 'name' element-locator.</p>
98
<p>Filters look much like locators, ie.</p>
99
<blockquote>
100
<em>filterType</em><strong>=</strong><em>argument</em></blockquote>
101

    
102
<p>Supported element-filters are:</p>
103
<p><strong>value=</strong><em>valuePattern</em></p>
104
<blockquote>
105
Matches elements based on their values.  This is particularly useful for refining a list of similarly-named toggle-buttons.</blockquote>
106
<p><strong>index=</strong><em>index</em></p>
107
<blockquote>
108
Selects a single element based on its position in the list (offset from zero).</blockquote>
109
</blockquote>
110

    
111
<h3><a name="patterns"></a>String-match Patterns</h3>
112

    
113
<p>
114
Various Pattern syntaxes are available for matching string values:
115
</p>
116
<ul>
117
<li><strong>glob:</strong><em>pattern</em>:
118
Match a string against a "glob" (aka "wildmat") pattern. "Glob" is a
119
kind of limited regular-expression syntax typically used in command-line
120
shells. In a glob pattern, "*" represents any sequence of characters, and "?"
121
represents any single character. Glob patterns match against the entire
122
string.</li>
123
<li><strong>regexp:</strong><em>regexp</em>:
124
Match a string using a regular-expression. The full power of JavaScript
125
regular-expressions is available.</li>
126
<li><strong>exact:</strong><em>string</em>:
127

    
128
Match a string exactly, verbatim, without any of that fancy wildcard
129
stuff.</li>
130
</ul>
131
<p>
132
If no pattern prefix is specified, Selenium assumes that it's a "glob"
133
pattern.
134
</p></top>
135

    
136
<function name="click">
137

    
138
<param name="locator">an element locator</param>
139

    
140
<comment>Clicks on a link, button, checkbox or radio button. If the click action
141
causes a new page to load (like a link usually does), call
142
waitForPageToLoad.</comment>
143

    
144
</function>
145

    
146
<function name="doubleClick">
147

    
148
<param name="locator">an element locator</param>
149

    
150
<comment>Double clicks on a link, button, checkbox or radio button. If the double click action
151
causes a new page to load (like a link usually does), call
152
waitForPageToLoad.</comment>
153

    
154
</function>
155

    
156
<function name="clickAt">
157

    
158
<param name="locator">an element locator</param>
159

    
160
<param name="coordString">specifies the x,y position (i.e. - 10,20) of the mouse      event relative to the element returned by the locator.</param>
161

    
162
<comment>Clicks on a link, button, checkbox or radio button. If the click action
163
causes a new page to load (like a link usually does), call
164
waitForPageToLoad.</comment>
165

    
166
</function>
167

    
168
<function name="doubleClickAt">
169

    
170
<param name="locator">an element locator</param>
171

    
172
<param name="coordString">specifies the x,y position (i.e. - 10,20) of the mouse      event relative to the element returned by the locator.</param>
173

    
174
<comment>Doubleclicks on a link, button, checkbox or radio button. If the action
175
causes a new page to load (like a link usually does), call
176
waitForPageToLoad.</comment>
177

    
178
</function>
179

    
180
<function name="fireEvent">
181

    
182
<param name="locator">an <a href="#locators">element locator</a></param>
183

    
184
<param name="eventName">the event name, e.g. "focus" or "blur"</param>
185

    
186
<comment>Explicitly simulate an event, to trigger the corresponding &quot;on<em>event</em>&quot;
187
handler.</comment>
188

    
189
</function>
190

    
191
<function name="keyPress">
192

    
193
<param name="locator">an <a href="#locators">element locator</a></param>
194

    
195
<param name="keySequence">Either be a string("\" followed by the numeric keycode  of the key to be pressed, normally the ASCII value of that key), or a single  character. For example: "w", "\119".</param>
196

    
197
<comment>Simulates a user pressing and releasing a key.</comment>
198

    
199
</function>
200

    
201
<function name="shiftKeyDown">
202

    
203
<comment>Press the shift key and hold it down until doShiftUp() is called or a new page is loaded.</comment>
204

    
205
</function>
206

    
207
<function name="shiftKeyUp">
208

    
209
<comment>Release the shift key.</comment>
210

    
211
</function>
212

    
213
<function name="metaKeyDown">
214

    
215
<comment>Press the meta key and hold it down until doMetaUp() is called or a new page is loaded.</comment>
216

    
217
</function>
218

    
219
<function name="metaKeyUp">
220

    
221
<comment>Release the meta key.</comment>
222

    
223
</function>
224

    
225
<function name="altKeyDown">
226

    
227
<comment>Press the alt key and hold it down until doAltUp() is called or a new page is loaded.</comment>
228

    
229
</function>
230

    
231
<function name="altKeyUp">
232

    
233
<comment>Release the alt key.</comment>
234

    
235
</function>
236

    
237
<function name="controlKeyDown">
238

    
239
<comment>Press the control key and hold it down until doControlUp() is called or a new page is loaded.</comment>
240

    
241
</function>
242

    
243
<function name="controlKeyUp">
244

    
245
<comment>Release the control key.</comment>
246

    
247
</function>
248

    
249
<function name="keyDown">
250

    
251
<param name="locator">an <a href="#locators">element locator</a></param>
252

    
253
<param name="keySequence">Either be a string("\" followed by the numeric keycode  of the key to be pressed, normally the ASCII value of that key), or a single  character. For example: "w", "\119".</param>
254

    
255
<comment>Simulates a user pressing a key (without releasing it yet).</comment>
256

    
257
</function>
258

    
259
<function name="keyUp">
260

    
261
<param name="locator">an <a href="#locators">element locator</a></param>
262

    
263
<param name="keySequence">Either be a string("\" followed by the numeric keycode  of the key to be pressed, normally the ASCII value of that key), or a single  character. For example: "w", "\119".</param>
264

    
265
<comment>Simulates a user releasing a key.</comment>
266

    
267
</function>
268

    
269
<function name="mouseOver">
270

    
271
<param name="locator">an <a href="#locators">element locator</a></param>
272

    
273
<comment>Simulates a user hovering a mouse over the specified element.</comment>
274

    
275
</function>
276

    
277
<function name="mouseOut">
278

    
279
<param name="locator">an <a href="#locators">element locator</a></param>
280

    
281
<comment>Simulates a user moving the mouse pointer away from the specified element.</comment>
282

    
283
</function>
284

    
285
<function name="mouseDown">
286

    
287
<param name="locator">an <a href="#locators">element locator</a></param>
288

    
289
<comment>Simulates a user pressing the mouse button (without releasing it yet) on
290
the specified element.</comment>
291

    
292
</function>
293

    
294
<function name="mouseDownAt">
295

    
296
<param name="locator">an <a href="#locators">element locator</a></param>
297

    
298
<param name="coordString">specifies the x,y position (i.e. - 10,20) of the mouse      event relative to the element returned by the locator.</param>
299

    
300
<comment>Simulates a user pressing the mouse button (without releasing it yet) on
301
the specified element.</comment>
302

    
303
</function>
304

    
305
<function name="mouseUp">
306

    
307
<param name="locator">an <a href="#locators">element locator</a></param>
308

    
309
<comment>Simulates a user pressing the mouse button (without releasing it yet) on
310
the specified element.</comment>
311

    
312
</function>
313

    
314
<function name="mouseUpAt">
315

    
316
<param name="locator">an <a href="#locators">element locator</a></param>
317

    
318
<param name="coordString">specifies the x,y position (i.e. - 10,20) of the mouse      event relative to the element returned by the locator.</param>
319

    
320
<comment>Simulates a user pressing the mouse button (without releasing it yet) on
321
the specified element.</comment>
322

    
323
</function>
324

    
325
<function name="mouseMove">
326

    
327
<param name="locator">an <a href="#locators">element locator</a></param>
328

    
329
<comment>Simulates a user pressing the mouse button (without releasing it yet) on
330
the specified element.</comment>
331

    
332
</function>
333

    
334
<function name="mouseMoveAt">
335

    
336
<param name="locator">an <a href="#locators">element locator</a></param>
337

    
338
<param name="coordString">specifies the x,y position (i.e. - 10,20) of the mouse      event relative to the element returned by the locator.</param>
339

    
340
<comment>Simulates a user pressing the mouse button (without releasing it yet) on
341
the specified element.</comment>
342

    
343
</function>
344

    
345
<function name="type">
346

    
347
<param name="locator">an <a href="#locators">element locator</a></param>
348

    
349
<param name="value">the value to type</param>
350

    
351
<comment>Sets the value of an input field, as though you typed it in.
352

    
353
<p>Can also be used to set the value of combo boxes, check boxes, etc. In these cases,
354
value should be the value of the option selected, not the visible text.</p></comment>
355

    
356
</function>
357

    
358
<function name="typeKeys">
359

    
360
<param name="locator">an <a href="#locators">element locator</a></param>
361

    
362
<param name="value">the value to type</param>
363

    
364
<comment>Simulates keystroke events on the specified element, as though you typed the value key-by-key.
365

    
366
<p>This is a convenience method for calling keyDown, keyUp, keyPress for every character in the specified string;
367
this is useful for dynamic UI widgets (like auto-completing combo boxes) that require explicit key events.</p>
368

    
369
<p>Unlike the simple "type" command, which forces the specified value into the page directly, this command
370
may or may not have any visible effect, even in cases where typing keys would normally have a visible effect.
371
For example, if you use "typeKeys" on a form element, you may or may not see the results of what you typed in
372
the field.</p>
373
<p>In some cases, you may need to use the simple "type" command to set the value of the field and then the "typeKeys" command to
374
send the keystroke events corresponding to what you just typed.</p></comment>
375

    
376
</function>
377

    
378
<function name="setSpeed">
379

    
380
<param name="value">the number of milliseconds to pause after operation</param>
381

    
382
<comment>Set execution speed (i.e., set the millisecond length of a delay which will follow each selenium operation).  By default, there is no such delay, i.e.,
383
the delay is 0 milliseconds.</comment>
384

    
385
</function>
386

    
387
<function name="getSpeed">
388

    
389
<comment>Get execution speed (i.e., get the millisecond length of the delay following each selenium operation).  By default, there is no such delay, i.e.,
390
the delay is 0 milliseconds.
391

    
392
See also setSpeed.</comment>
393

    
394
</function>
395

    
396
<function name="check">
397

    
398
<param name="locator">an <a href="#locators">element locator</a></param>
399

    
400
<comment>Check a toggle-button (checkbox/radio)</comment>
401

    
402
</function>
403

    
404
<function name="uncheck">
405

    
406
<param name="locator">an <a href="#locators">element locator</a></param>
407

    
408
<comment>Uncheck a toggle-button (checkbox/radio)</comment>
409

    
410
</function>
411

    
412
<function name="select">
413

    
414
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
415

    
416
<param name="optionLocator">an option locator (a label by default)</param>
417

    
418
<comment>Select an option from a drop-down using an option locator.
419

    
420
<p>
421
Option locators provide different ways of specifying options of an HTML
422
Select element (e.g. for selecting a specific option, or for asserting
423
that the selected option satisfies a specification). There are several
424
forms of Select Option Locator.
425
</p>
426
<ul>
427
<li><strong>label</strong>=<em>labelPattern</em>:
428
matches options based on their labels, i.e. the visible text. (This
429
is the default.)
430
<ul class="first last simple">
431
<li>label=regexp:^[Oo]ther</li>
432
</ul>
433
</li>
434
<li><strong>value</strong>=<em>valuePattern</em>:
435
matches options based on their values.
436
<ul class="first last simple">
437
<li>value=other</li>
438
</ul>
439

    
440

    
441
</li>
442
<li><strong>id</strong>=<em>id</em>:
443

    
444
matches options based on their ids.
445
<ul class="first last simple">
446
<li>id=option1</li>
447
</ul>
448
</li>
449
<li><strong>index</strong>=<em>index</em>:
450
matches an option based on its index (offset from zero).
451
<ul class="first last simple">
452

    
453
<li>index=2</li>
454
</ul>
455
</li>
456
</ul>
457
<p>
458
If no option locator prefix is provided, the default behaviour is to match on <strong>label</strong>.
459
</p></comment>
460

    
461
</function>
462

    
463
<function name="addSelection">
464

    
465
<param name="locator">an <a href="#locators">element locator</a> identifying a multi-select box</param>
466

    
467
<param name="optionLocator">an option locator (a label by default)</param>
468

    
469
<comment>Add a selection to the set of selected options in a multi-select element using an option locator.
470

    
471
@see #doSelect for details of option locators</comment>
472

    
473
</function>
474

    
475
<function name="removeSelection">
476

    
477
<param name="locator">an <a href="#locators">element locator</a> identifying a multi-select box</param>
478

    
479
<param name="optionLocator">an option locator (a label by default)</param>
480

    
481
<comment>Remove a selection from the set of selected options in a multi-select element using an option locator.
482

    
483
@see #doSelect for details of option locators</comment>
484

    
485
</function>
486

    
487
<function name="removeAllSelections">
488

    
489
<param name="locator">an <a href="#locators">element locator</a> identifying a multi-select box</param>
490

    
491
<comment>Unselects all of the selected options in a multi-select element.</comment>
492

    
493
</function>
494

    
495
<function name="submit">
496

    
497
<param name="formLocator">an <a href="#locators">element locator</a> for the form you want to submit</param>
498

    
499
<comment>Submit the specified form. This is particularly useful for forms without
500
submit buttons, e.g. single-input "Search" forms.</comment>
501

    
502
</function>
503

    
504
<function name="open">
505

    
506
<param name="url">the URL to open; may be relative or absolute</param>
507

    
508
<comment>Opens an URL in the test frame. This accepts both relative and absolute
509
URLs.
510

    
511
The &quot;open&quot; command waits for the page to load before proceeding,
512
ie. the &quot;AndWait&quot; suffix is implicit.
513

    
514
<em>Note</em>: The URL must be on the same domain as the runner HTML
515
due to security restrictions in the browser (Same Origin Policy). If you
516
need to open an URL on another domain, use the Selenium Server to start a
517
new browser session on that domain.</comment>
518

    
519
</function>
520

    
521
<function name="openWindow">
522

    
523
<param name="url">the URL to open, which can be blank</param>
524

    
525
<param name="windowID">the JavaScript window ID of the window to select</param>
526

    
527
<comment>Opens a popup window (if a window with that ID isn't already open).
528
After opening the window, you'll need to select it using the selectWindow
529
command.
530

    
531
<p>This command can also be a useful workaround for bug SEL-339.  In some cases, Selenium will be unable to intercept a call to window.open (if the call occurs during or before the "onLoad" event, for example).
532
In those cases, you can force Selenium to notice the open window's name by using the Selenium openWindow command, using
533
an empty (blank) url, like this: openWindow("", "myFunnyWindow").</p></comment>
534

    
535
</function>
536

    
537
<function name="selectWindow">
538

    
539
<param name="windowID">the JavaScript window ID of the window to select</param>
540

    
541
<comment>Selects a popup window; once a popup window has been selected, all
542
commands go to that window. To select the main window again, use null
543
as the target.
544

    
545
<p>Selenium has several strategies for finding the window object referred to by the "windowID" parameter.</p>
546

    
547
<p>1.) if windowID is null, then it is assumed the user is referring to the original window instantiated by the browser).</p>
548
<p>2.) if the value of the "windowID" parameter is a JavaScript variable name in the current application window, then it is assumed
549
that this variable contains the return value from a call to the JavaScript window.open() method.</p>
550
<p>3.) Otherwise, selenium looks in a hash it maintains that maps string names to window objects.  Each of these string 
551
names matches the second parameter "windowName" past to the JavaScript method  window.open(url, windowName, windowFeatures, replaceFlag)
552
(which selenium intercepts).</p>
553

    
554
<p>If you're having trouble figuring out what is the name of a window that you want to manipulate, look at the selenium log messages
555
which identify the names of windows created via window.open (and therefore intercepted by selenium).  You will see messages
556
like the following for each window as it is opened:</p>
557

    
558
<p><code>debug: window.open call intercepted; window ID (which you can use with selectWindow()) is "myNewWindow"</code></p>
559

    
560
<p>In some cases, Selenium will be unable to intercept a call to window.open (if the call occurs during or before the "onLoad" event, for example).
561
(This is bug SEL-339.)  In those cases, you can force Selenium to notice the open window's name by using the Selenium openWindow command, using
562
an empty (blank) url, like this: openWindow("", "myFunnyWindow").</p></comment>
563

    
564
</function>
565

    
566
<function name="selectFrame">
567

    
568
<param name="locator">an <a href="#locators">element locator</a> identifying a frame or iframe</param>
569

    
570
<comment>Selects a frame within the current window.  (You may invoke this command
571
multiple times to select nested frames.)  To select the parent frame, use
572
"relative=parent" as a locator; to select the top frame, use "relative=top".
573

    
574
<p>You may also use a DOM expression to identify the frame you want directly,
575
like this: <code>dom=frames["main"].frames["subframe"]</code></p></comment>
576

    
577
</function>
578

    
579
<function name="getLogMessages">
580

    
581
<return type="string">all log messages seen since the last call to this API</return>
582

    
583
<comment>Return the contents of the log.
584

    
585
<p>This is a placeholder intended to make the code generator make this API
586
available to clients.  The selenium server will intercept this call, however,
587
and return its recordkeeping of log messages since the last call to this API.
588
Thus this code in JavaScript will never be called.</p>
589

    
590
<p>The reason I opted for a servercentric solution is to be able to support
591
multiple frames served from different domains, which would break a
592
centralized JavaScript logging mechanism under some conditions.</p></comment>
593

    
594
</function>
595

    
596
<function name="getWhetherThisFrameMatchFrameExpression">
597

    
598
<return type="boolean">true if the new frame is this code's window</return>
599

    
600
<param name="currentFrameString">starting frame</param>
601

    
602
<param name="target">new frame (which might be relative to the current one)</param>
603

    
604
<comment>Determine whether current/locator identify the frame containing this running code.
605

    
606
<p>This is useful in proxy injection mode, where this code runs in every
607
browser frame and window, and sometimes the selenium server needs to identify
608
the "current" frame.  In this case, when the test calls selectFrame, this
609
routine is called for each frame to figure out which one has been selected.
610
The selected frame will return true, while all others will return false.</p></comment>
611

    
612
</function>
613

    
614
<function name="getWhetherThisWindowMatchWindowExpression">
615

    
616
<return type="boolean">true if the new window is this code's window</return>
617

    
618
<param name="currentWindowString">starting window</param>
619

    
620
<param name="target">new window (which might be relative to the current one, e.g., "_parent")</param>
621

    
622
<comment>Determine whether currentWindowString plus target identify the window containing this running code.
623

    
624
<p>This is useful in proxy injection mode, where this code runs in every
625
browser frame and window, and sometimes the selenium server needs to identify
626
the "current" window.  In this case, when the test calls selectWindow, this
627
routine is called for each window to figure out which one has been selected.
628
The selected window will return true, while all others will return false.</p></comment>
629

    
630
</function>
631

    
632
<function name="waitForPopUp">
633

    
634
<param name="windowID">the JavaScript window ID of the window that will appear</param>
635

    
636
<param name="timeout">a timeout in milliseconds, after which the action will return with an error</param>
637

    
638
<comment>Waits for a popup window to appear and load up.</comment>
639

    
640
</function>
641

    
642
<function name="chooseCancelOnNextConfirmation">
643

    
644
<comment>By default, Selenium's overridden window.confirm() function will
645
return true, as if the user had manually clicked OK.  After running
646
this command, the next call to confirm() will return false, as if
647
the user had clicked Cancel.</comment>
648

    
649
</function>
650

    
651
<function name="answerOnNextPrompt">
652

    
653
<param name="answer">the answer to give in response to the prompt pop-up</param>
654

    
655
<comment>Instructs Selenium to return the specified answer string in response to
656
the next JavaScript prompt [window.prompt()].</comment>
657

    
658
</function>
659

    
660
<function name="goBack">
661

    
662
<comment>Simulates the user clicking the "back" button on their browser.</comment>
663

    
664
</function>
665

    
666
<function name="refresh">
667

    
668
<comment>Simulates the user clicking the "Refresh" button on their browser.</comment>
669

    
670
</function>
671

    
672
<function name="close">
673

    
674
<comment>Simulates the user clicking the "close" button in the titlebar of a popup
675
window or tab.</comment>
676

    
677
</function>
678

    
679
<function name="isAlertPresent">
680

    
681
<return type="boolean">true if there is an alert</return>
682

    
683
<comment>Has an alert occurred?
684

    
685
<p>
686
This function never throws an exception
687
</p></comment>
688

    
689
</function>
690

    
691
<function name="isPromptPresent">
692

    
693
<return type="boolean">true if there is a pending prompt</return>
694

    
695
<comment>Has a prompt occurred?
696

    
697
<p>
698
This function never throws an exception
699
</p></comment>
700

    
701
</function>
702

    
703
<function name="isConfirmationPresent">
704

    
705
<return type="boolean">true if there is a pending confirmation</return>
706

    
707
<comment>Has confirm() been called?
708

    
709
<p>
710
This function never throws an exception
711
</p></comment>
712

    
713
</function>
714

    
715
<function name="getAlert">
716

    
717
<return type="string">The message of the most recent JavaScript alert</return>
718

    
719
<comment>Retrieves the message of a JavaScript alert generated during the previous action, or fail if there were no alerts.
720

    
721
<p>Getting an alert has the same effect as manually clicking OK. If an
722
alert is generated but you do not get/verify it, the next Selenium action
723
will fail.</p>
724

    
725
<p>NOTE: under Selenium, JavaScript alerts will NOT pop up a visible alert
726
dialog.</p>
727

    
728
<p>NOTE: Selenium does NOT support JavaScript alerts that are generated in a
729
page's onload() event handler. In this case a visible dialog WILL be
730
generated and Selenium will hang until someone manually clicks OK.</p></comment>
731

    
732
</function>
733

    
734
<function name="getConfirmation">
735

    
736
<return type="string">the message of the most recent JavaScript confirmation dialog</return>
737

    
738
<comment>Retrieves the message of a JavaScript confirmation dialog generated during
739
the previous action.
740

    
741
<p>
742
By default, the confirm function will return true, having the same effect
743
as manually clicking OK. This can be changed by prior execution of the
744
chooseCancelOnNextConfirmation command. If an confirmation is generated
745
but you do not get/verify it, the next Selenium action will fail.
746
</p>
747

    
748
<p>
749
NOTE: under Selenium, JavaScript confirmations will NOT pop up a visible
750
dialog.
751
</p>
752

    
753
<p>
754
NOTE: Selenium does NOT support JavaScript confirmations that are
755
generated in a page's onload() event handler. In this case a visible
756
dialog WILL be generated and Selenium will hang until you manually click
757
OK.
758
</p></comment>
759

    
760
</function>
761

    
762
<function name="getPrompt">
763

    
764
<return type="string">the message of the most recent JavaScript question prompt</return>
765

    
766
<comment>Retrieves the message of a JavaScript question prompt dialog generated during
767
the previous action.
768

    
769
<p>Successful handling of the prompt requires prior execution of the
770
answerOnNextPrompt command. If a prompt is generated but you
771
do not get/verify it, the next Selenium action will fail.</p>
772

    
773
<p>NOTE: under Selenium, JavaScript prompts will NOT pop up a visible
774
dialog.</p>
775

    
776
<p>NOTE: Selenium does NOT support JavaScript prompts that are generated in a
777
page's onload() event handler. In this case a visible dialog WILL be
778
generated and Selenium will hang until someone manually clicks OK.</p></comment>
779

    
780
</function>
781

    
782
<function name="getLocation">
783

    
784
<return type="string">the absolute URL of the current page</return>
785

    
786
<comment>Gets the absolute URL of the current page.</comment>
787

    
788
</function>
789

    
790
<function name="getTitle">
791

    
792
<return type="string">the title of the current page</return>
793

    
794
<comment>Gets the title of the current page.</comment>
795

    
796
</function>
797

    
798
<function name="getBodyText">
799

    
800
<return type="string">the entire text of the page</return>
801

    
802
<comment>Gets the entire text of the page.</comment>
803

    
804
</function>
805

    
806
<function name="getValue">
807

    
808
<return type="string">the element value, or "on/off" for checkbox/radio elements</return>
809

    
810
<param name="locator">an <a href="#locators">element locator</a></param>
811

    
812
<comment>Gets the (whitespace-trimmed) value of an input field (or anything else with a value parameter).
813
For checkbox/radio elements, the value will be "on" or "off" depending on
814
whether the element is checked or not.</comment>
815

    
816
</function>
817

    
818
<function name="getText">
819

    
820
<return type="string">the text of the element</return>
821

    
822
<param name="locator">an <a href="#locators">element locator</a></param>
823

    
824
<comment>Gets the text of an element. This works for any element that contains
825
text. This command uses either the textContent (Mozilla-like browsers) or
826
the innerText (IE-like browsers) of the element, which is the rendered
827
text shown to the user.</comment>
828

    
829
</function>
830

    
831
<function name="highlight">
832

    
833
<param name="locator">an <a href="#locators">element locator</a></param>
834

    
835
<comment>Briefly changes the backgroundColor of the specified element yellow.  Useful for debugging.</comment>
836

    
837
</function>
838

    
839
<function name="getEval">
840

    
841
<return type="string">the results of evaluating the snippet</return>
842

    
843
<param name="script">the JavaScript snippet to run</param>
844

    
845
<comment>Gets the result of evaluating the specified JavaScript snippet.  The snippet may
846
have multiple lines, but only the result of the last line will be returned.
847

    
848
<p>Note that, by default, the snippet will run in the context of the "selenium"
849
object itself, so <code>this</code> will refer to the Selenium object, and <code>window</code> will
850
refer to the top-level runner test window, not the window of your application.</p>
851

    
852
<p>If you need a reference to the window of your application, you can refer
853
to <code>this.browserbot.getCurrentWindow()</code> and if you need to use
854
a locator to refer to a single element in your application page, you can
855
use <code>this.browserbot.findElement("foo")</code> where "foo" is your locator.</p></comment>
856

    
857
</function>
858

    
859
<function name="isChecked">
860

    
861
<return type="boolean">true if the checkbox is checked, false otherwise</return>
862

    
863
<param name="locator">an <a href="#locators">element locator</a> pointing to a checkbox or radio button</param>
864

    
865
<comment>Gets whether a toggle-button (checkbox/radio) is checked.  Fails if the specified element doesn't exist or isn't a toggle-button.</comment>
866

    
867
</function>
868

    
869
<function name="getTable">
870

    
871
<return type="string">the text from the specified cell</return>
872

    
873
<param name="tableCellAddress">a cell address, e.g. "foo.1.4"</param>
874

    
875
<comment>Gets the text from a cell of a table. The cellAddress syntax
876
tableLocator.row.column, where row and column start at 0.</comment>
877

    
878
</function>
879

    
880
<function name="getSelectedLabels">
881

    
882
<return type="string[]">an array of all selected option labels in the specified select drop-down</return>
883

    
884
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
885

    
886
<comment>Gets all option labels (visible text) for selected options in the specified select or multi-select element.</comment>
887

    
888
</function>
889

    
890
<function name="getSelectedLabel">
891

    
892
<return type="string">the selected option label in the specified select drop-down</return>
893

    
894
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
895

    
896
<comment>Gets option label (visible text) for selected option in the specified select element.</comment>
897

    
898
</function>
899

    
900
<function name="getSelectedValues">
901

    
902
<return type="string[]">an array of all selected option values in the specified select drop-down</return>
903

    
904
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
905

    
906
<comment>Gets all option values (value attributes) for selected options in the specified select or multi-select element.</comment>
907

    
908
</function>
909

    
910
<function name="getSelectedValue">
911

    
912
<return type="string">the selected option value in the specified select drop-down</return>
913

    
914
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
915

    
916
<comment>Gets option value (value attribute) for selected option in the specified select element.</comment>
917

    
918
</function>
919

    
920
<function name="getSelectedIndexes">
921

    
922
<return type="string[]">an array of all selected option indexes in the specified select drop-down</return>
923

    
924
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
925

    
926
<comment>Gets all option indexes (option number, starting at 0) for selected options in the specified select or multi-select element.</comment>
927

    
928
</function>
929

    
930
<function name="getSelectedIndex">
931

    
932
<return type="string">the selected option index in the specified select drop-down</return>
933

    
934
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
935

    
936
<comment>Gets option index (option number, starting at 0) for selected option in the specified select element.</comment>
937

    
938
</function>
939

    
940
<function name="getSelectedIds">
941

    
942
<return type="string[]">an array of all selected option IDs in the specified select drop-down</return>
943

    
944
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
945

    
946
<comment>Gets all option element IDs for selected options in the specified select or multi-select element.</comment>
947

    
948
</function>
949

    
950
<function name="getSelectedId">
951

    
952
<return type="string">the selected option ID in the specified select drop-down</return>
953

    
954
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
955

    
956
<comment>Gets option element ID for selected option in the specified select element.</comment>
957

    
958
</function>
959

    
960
<function name="isSomethingSelected">
961

    
962
<return type="boolean">true if some option has been selected, false otherwise</return>
963

    
964
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
965

    
966
<comment>Determines whether some option in a drop-down menu is selected.</comment>
967

    
968
</function>
969

    
970
<function name="getSelectOptions">
971

    
972
<return type="string[]">an array of all option labels in the specified select drop-down</return>
973

    
974
<param name="selectLocator">an <a href="#locators">element locator</a> identifying a drop-down menu</param>
975

    
976
<comment>Gets all option labels in the specified select drop-down.</comment>
977

    
978
</function>
979

    
980
<function name="getAttribute">
981

    
982
<return type="string">the value of the specified attribute</return>
983

    
984
<param name="attributeLocator">an element locator followed by an</param>
985

    
986
<comment>Gets the value of an element attribute.</comment>
987

    
988
</function>
989

    
990
<function name="isTextPresent">
991

    
992
<return type="boolean">true if the pattern matches the text, false otherwise</return>
993

    
994
<param name="pattern">a <a href="#patterns">pattern</a> to match with the text of the page</param>
995

    
996
<comment>Verifies that the specified text pattern appears somewhere on the rendered page shown to the user.</comment>
997

    
998
</function>
999

    
1000
<function name="isElementPresent">
1001

    
1002
<return type="boolean">true if the element is present, false otherwise</return>
1003

    
1004
<param name="locator">an <a href="#locators">element locator</a></param>
1005

    
1006
<comment>Verifies that the specified element is somewhere on the page.</comment>
1007

    
1008
</function>
1009

    
1010
<function name="isVisible">
1011

    
1012
<return type="boolean">true if the specified element is visible, false otherwise</return>
1013

    
1014
<param name="locator">an <a href="#locators">element locator</a></param>
1015

    
1016
<comment>Determines if the specified element is visible. An
1017
element can be rendered invisible by setting the CSS "visibility"
1018
property to "hidden", or the "display" property to "none", either for the
1019
element itself or one if its ancestors.  This method will fail if
1020
the element is not present.</comment>
1021

    
1022
</function>
1023

    
1024
<function name="isEditable">
1025

    
1026
<return type="boolean">true if the input element is editable, false otherwise</return>
1027

    
1028
<param name="locator">an <a href="#locators">element locator</a></param>
1029

    
1030
<comment>Determines whether the specified input element is editable, ie hasn't been disabled.
1031
This method will fail if the specified element isn't an input element.</comment>
1032

    
1033
</function>
1034

    
1035
<function name="getAllButtons">
1036

    
1037
<return type="string[]">the IDs of all buttons on the page</return>
1038

    
1039
<comment>Returns the IDs of all buttons on the page.
1040

    
1041
<p>If a given button has no ID, it will appear as "" in this array.</p></comment>
1042

    
1043
</function>
1044

    
1045
<function name="getAllLinks">
1046

    
1047
<return type="string[]">the IDs of all links on the page</return>
1048

    
1049
<comment>Returns the IDs of all links on the page.
1050

    
1051
<p>If a given link has no ID, it will appear as "" in this array.</p></comment>
1052

    
1053
</function>
1054

    
1055
<function name="getAllFields">
1056

    
1057
<return type="string[]">the IDs of all field on the page</return>
1058

    
1059
<comment>Returns the IDs of all input fields on the page.
1060

    
1061
<p>If a given field has no ID, it will appear as "" in this array.</p></comment>
1062

    
1063
</function>
1064

    
1065
<function name="getAttributeFromAllWindows">
1066

    
1067
<return type="string[]">the set of values of this attribute from all known windows.</return>
1068

    
1069
<param name="attributeName">name of an attribute on the windows</param>
1070

    
1071
<comment>Returns every instance of some attribute from all known windows.</comment>
1072

    
1073
</function>
1074

    
1075
<function name="dragdrop">
1076

    
1077
<param name="locator">an element locator</param>
1078

    
1079
<param name="movementsString">offset in pixels from the current location to which the element should be moved, e.g., "+70,-300"</param>
1080

    
1081
<comment>deprecated - use dragAndDrop instead</comment>
1082

    
1083
</function>
1084

    
1085
<function name="setMouseSpeed">
1086

    
1087
<param name="pixels">the number of pixels between "mousemove" events</param>
1088

    
1089
<comment>Configure the number of pixels between "mousemove" events during dragAndDrop commands (default=10).
1090
<p>Setting this value to 0 means that we'll send a "mousemove" event to every single pixel
1091
in between the start location and the end location; that can be very slow, and may
1092
cause some browsers to force the JavaScript to timeout.</p>
1093

    
1094
<p>If the mouse speed is greater than the distance between the two dragged objects, we'll
1095
just send one "mousemove" at the start location and then one final one at the end location.</p></comment>
1096

    
1097
</function>
1098

    
1099
<function name="getMouseSpeed">
1100

    
1101
<return type="number">the number of pixels between "mousemove" events during dragAndDrop commands (default=10)</return>
1102

    
1103
<comment>Returns the number of pixels between "mousemove" events during dragAndDrop commands (default=10).</comment>
1104

    
1105
</function>
1106

    
1107
<function name="dragAndDrop">
1108

    
1109
<param name="locator">an element locator</param>
1110

    
1111
<param name="movementsString">offset in pixels from the current location to which the element should be moved, e.g., "+70,-300"</param>
1112

    
1113
<comment>Drags an element a certain distance and then drops it</comment>
1114

    
1115
</function>
1116

    
1117
<function name="dragAndDropToObject">
1118

    
1119
<param name="locatorOfObjectToBeDragged">an element to be dragged</param>
1120

    
1121
<param name="locatorOfDragDestinationObject">an element whose location (i.e., whose center-most pixel) will be the point where locatorOfObjectToBeDragged  is dropped</param>
1122

    
1123
<comment>Drags an element and drops it on another element</comment>
1124

    
1125
</function>
1126

    
1127
<function name="windowFocus">
1128

    
1129
<param name="windowName">name of the window to be given focus</param>
1130

    
1131
<comment>Gives focus to a window</comment>
1132

    
1133
</function>
1134

    
1135
<function name="windowMaximize">
1136

    
1137
<param name="windowName">name of the window to be enlarged</param>
1138

    
1139
<comment>Resize window to take up the entire screen</comment>
1140

    
1141
</function>
1142

    
1143
<function name="getAllWindowIds">
1144

    
1145
<return type="string[]">the IDs of all windows that the browser knows about.</return>
1146

    
1147
<comment>Returns the IDs of all windows that the browser knows about.</comment>
1148

    
1149
</function>
1150

    
1151
<function name="getAllWindowNames">
1152

    
1153
<return type="string[]">the names of all windows that the browser knows about.</return>
1154

    
1155
<comment>Returns the names of all windows that the browser knows about.</comment>
1156

    
1157
</function>
1158

    
1159
<function name="getAllWindowTitles">
1160

    
1161
<return type="string[]">the titles of all windows that the browser knows about.</return>
1162

    
1163
<comment>Returns the titles of all windows that the browser knows about.</comment>
1164

    
1165
</function>
1166

    
1167
<function name="getHtmlSource">
1168

    
1169
<return type="string">the entire HTML source</return>
1170

    
1171
<comment>Returns the entire HTML source between the opening and
1172
closing "html" tags.</comment>
1173

    
1174
</function>
1175

    
1176
<function name="setCursorPosition">
1177

    
1178
<param name="locator">an <a href="#locators">element locator</a> pointing to an input element or textarea</param>
1179

    
1180
<param name="position">the numerical position of the cursor in the field; position should be 0 to move the position to the beginning of the field.  You can also set the cursor to -1 to move it to the end of the field.</param>
1181

    
1182
<comment>Moves the text cursor to the specified position in the given input element or textarea.
1183
This method will fail if the specified element isn't an input element or textarea.</comment>
1184

    
1185
</function>
1186

    
1187
<function name="getElementIndex">
1188

    
1189
<return type="number">of relative index of the element to its parent (starting from 0)</return>
1190

    
1191
<param name="locator">an <a href="#locators">element locator</a> pointing to an element</param>
1192

    
1193
<comment>Get the relative index of an element to its parent (starting from 0). The comment node and empty text node
1194
will be ignored.</comment>
1195

    
1196
</function>
1197

    
1198
<function name="isOrdered">
1199

    
1200
<return type="boolean">true if two elements are ordered and have same parent, false otherwise</return>
1201

    
1202
<param name="locator1">an <a href="#locators">element locator</a> pointing to the first element</param>
1203

    
1204
<param name="locator2">an <a href="#locators">element locator</a> pointing to the second element</param>
1205

    
1206
<comment>Check if these two elements have same parent and are ordered. Two same elements will
1207
not be considered ordered.</comment>
1208

    
1209
</function>
1210

    
1211
<function name="getElementPositionLeft">
1212

    
1213
<return type="number">of pixels from the edge of the frame.</return>
1214

    
1215
<param name="locator">an <a href="#locators">element locator</a> pointing to an element OR an element itself</param>
1216

    
1217
<comment>Retrieves the horizontal position of an element</comment>
1218

    
1219
</function>
1220

    
1221
<function name="getElementPositionTop">
1222

    
1223
<return type="number">of pixels from the edge of the frame.</return>
1224

    
1225
<param name="locator">an <a href="#locators">element locator</a> pointing to an element OR an element itself</param>
1226

    
1227
<comment>Retrieves the vertical position of an element</comment>
1228

    
1229
</function>
1230

    
1231
<function name="getElementWidth">
1232

    
1233
<return type="number">width of an element in pixels</return>
1234

    
1235
<param name="locator">an <a href="#locators">element locator</a> pointing to an element</param>
1236

    
1237
<comment>Retrieves the width of an element</comment>
1238

    
1239
</function>
1240

    
1241
<function name="getElementHeight">
1242

    
1243
<return type="number">height of an element in pixels</return>
1244

    
1245
<param name="locator">an <a href="#locators">element locator</a> pointing to an element</param>
1246

    
1247
<comment>Retrieves the height of an element</comment>
1248

    
1249
</function>
1250

    
1251
<function name="getCursorPosition">
1252

    
1253
<return type="number">the numerical position of the cursor in the field</return>
1254

    
1255
<param name="locator">an <a href="#locators">element locator</a> pointing to an input element or textarea</param>
1256

    
1257
<comment>Retrieves the text cursor position in the given input element or textarea; beware, this may not work perfectly on all browsers.
1258

    
1259
<p>Specifically, if the cursor/selection has been cleared by JavaScript, this command will tend to
1260
return the position of the last location of the cursor, even though the cursor is now gone from the page.  This is filed as <a href="http://jira.openqa.org/browse/SEL-243">SEL-243</a>.</p>
1261
This method will fail if the specified element isn't an input element or textarea, or there is no cursor in the element.</comment>
1262

    
1263
</function>
1264

    
1265
<function name="setContext">
1266

    
1267
<param name="context">the message to be sent to the browser</param>
1268

    
1269
<param name="logLevelThreshold">one of "debug", "info", "warn", "error", sets the threshold for browser-side logging</param>
1270

    
1271
<comment>Writes a message to the status bar and adds a note to the browser-side
1272
log.
1273

    
1274
<p>If logLevelThreshold is specified, set the threshold for logging
1275
to that level (debug, info, warn, error).</p>
1276

    
1277
<p>(Note that the browser-side logs will <i>not</i> be sent back to the
1278
server, and are invisible to the Client Driver.)</p></comment>
1279

    
1280
</function>
1281

    
1282
<function name="getExpression">
1283

    
1284
<return type="string">the value passed in</return>
1285

    
1286
<param name="expression">the value to return</param>
1287

    
1288
<comment>Returns the specified expression.
1289

    
1290
<p>This is useful because of JavaScript preprocessing.
1291
It is used to generate commands like assertExpression and waitForExpression.</p></comment>
1292

    
1293
</function>
1294

    
1295
<function name="waitForCondition">
1296

    
1297
<param name="script">the JavaScript snippet to run</param>
1298

    
1299
<param name="timeout">a timeout in milliseconds, after which this command will return with an error</param>
1300

    
1301
<comment>Runs the specified JavaScript snippet repeatedly until it evaluates to "true".
1302
The snippet may have multiple lines, but only the result of the last line
1303
will be considered.
1304

    
1305
<p>Note that, by default, the snippet will be run in the runner's test window, not in the window
1306
of your application.  To get the window of your application, you can use
1307
the JavaScript snippet <code>selenium.browserbot.getCurrentWindow()</code>, and then
1308
run your JavaScript in there</p></comment>
1309

    
1310
</function>
1311

    
1312
<function name="setTimeout">
1313

    
1314
<param name="timeout">a timeout in milliseconds, after which the action will return with an error</param>
1315

    
1316
<comment>Specifies the amount of time that Selenium will wait for actions to complete.
1317

    
1318
<p>Actions that require waiting include "open" and the "waitFor*" actions.</p>
1319
The default timeout is 30 seconds.</comment>
1320

    
1321
</function>
1322

    
1323
<function name="waitForPageToLoad">
1324

    
1325
<param name="timeout">a timeout in milliseconds, after which this command will return with an error</param>
1326

    
1327
<comment>Waits for a new page to load.
1328

    
1329
<p>You can use this command instead of the "AndWait" suffixes, "clickAndWait", "selectAndWait", "typeAndWait" etc.
1330
(which are only available in the JS API).</p>
1331

    
1332
<p>Selenium constantly keeps track of new pages loading, and sets a "newPageLoaded"
1333
flag when it first notices a page load.  Running any other Selenium command after
1334
turns the flag to false.  Hence, if you want to wait for a page to load, you must
1335
wait immediately after a Selenium command that caused a page-load.</p></comment>
1336

    
1337
</function>
1338

    
1339
<function name="getCookie">
1340

    
1341
<return type="string">all cookies of the current page under test</return>
1342

    
1343
<comment>Return all cookies of the current page under test.</comment>
1344

    
1345
</function>
1346

    
1347
<function name="createCookie">
1348

    
1349
<param name="nameValuePair">name and value of the cookie in a format "name=value"</param>
1350

    
1351
<param name="optionsString">options for the cookie. Currently supported options include 'path' and 'max_age'.      the optionsString's format is "path=/path/, max_age=60". The order of options are irrelevant, the unit      of the value of 'max_age' is second.</param>
1352

    
1353
<comment>Create a new cookie whose path and domain are same with those of current page
1354
under test, unless you specified a path for this cookie explicitly.</comment>
1355

    
1356
</function>
1357

    
1358
<function name="deleteCookie">
1359

    
1360
<param name="name">the name of the cookie to be deleted</param>
1361

    
1362
<param name="path">the path property of the cookie to be deleted</param>
1363

    
1364
<comment>Delete a named cookie with specified path.</comment>
1365

    
1366
</function>
1367

    
1368
</apidoc>
(10-10/13)