public interface Selenium
Element Locators tell Selenium which HTML element a command refers to. The format of a locator is:
locatorType=argument
We support the following strategies for locating elements:
The name may optionally be followed by one or more element-filters, separated from the name by whitespace. If the filterType is not specified, value is assumed.
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).
Without an explicit locator prefix, Selenium uses the following default strategies:
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.
Filters look much like locators, ie.
filterType=argumentSupported element-filters are:
value=valuePattern
Matches elements based on their values. This is particularly useful for refining a list of similarly-named toggle-buttons.index=index
Selects a single element based on its position in the list (offset from zero).
Various Pattern syntaxes are available for matching string values:
If no pattern prefix is specified, Selenium assumes that it's a "glob" pattern.
For commands that return multiple values (such as verifySelectOptions), the string being matched is a comma-separated list of the return values, where both commas and backslashes in the values are backslash-escaped. When providing a pattern, the optional matching syntax (i.e. glob, regexp, etc.) is specified once, as usual, at the beginning of the pattern.
Modifier and Type | Method and Description |
---|---|
void |
addCustomRequestHeader(String key,
String value)
Tells the Selenium server to add the specificed key and value as a custom outgoing request
header.
|
void |
addLocationStrategy(String strategyName,
String functionDefinition)
Defines a new function for Selenium to locate elements on the page.
|
void |
addScript(String scriptContent,
String scriptTagId)
Loads script content into a new script tag in the Selenium document.
|
void |
addSelection(String locator,
String optionLocator)
Add a selection to the set of selected options in a multi-select element using an option
locator.
|
void |
allowNativeXpath(String allow)
Specifies whether Selenium should use the native in-browser implementation of XPath (if any
native version is available); if you pass "false" to this function, we will always use our
pure-JavaScript xpath library.
|
void |
altKeyDown()
Press the alt key and hold it down until doAltUp() is called or a new page is loaded.
|
void |
altKeyUp()
Release the alt key.
|
void |
answerOnNextPrompt(String answer)
Instructs Selenium to return the specified answer string in response to the next JavaScript
prompt [window.prompt()].
|
void |
assignId(String locator,
String identifier)
Temporarily sets the "id" attribute of the specified element, so you can locate it in the
future using its ID rather than a slow/complicated XPath.
|
void |
attachFile(String fieldLocator,
String fileLocator)
Sets a file input (upload) field to the file listed in fileLocator
|
void |
captureEntirePageScreenshot(String filename,
String kwargs)
Saves the entire contents of the current window canvas to a PNG file.
|
String |
captureEntirePageScreenshotToString(String kwargs)
Downloads a screenshot of the browser current window canvas to a based 64 encoded PNG file.
|
String |
captureNetworkTraffic(String type)
Returns the network traffic seen by the browser, including headers, AJAX requests, status
codes, and timings.
|
void |
captureScreenshot(String filename)
Captures a PNG screenshot to the specified file.
|
String |
captureScreenshotToString()
Capture a PNG screenshot.
|
void |
check(String locator)
Check a toggle-button (checkbox/radio)
|
void |
chooseCancelOnNextConfirmation()
By default, Selenium's overridden window.confirm() function will return true, as if the user
had manually clicked OK; after running this command, the next call to confirm() will return
false, as if the user had clicked Cancel.
|
void |
chooseOkOnNextConfirmation()
Undo the effect of calling chooseCancelOnNextConfirmation.
|
void |
click(String locator)
Clicks on a link, button, checkbox or radio button.
|
void |
clickAt(String locator,
String coordString)
Clicks on a link, button, checkbox or radio button.
|
void |
close()
Simulates the user clicking the "close" button in the titlebar of a popup window or tab.
|
void |
contextMenu(String locator)
Simulates opening the context menu for the specified element (as might happen if the user
"right-clicked" on the element).
|
void |
contextMenuAt(String locator,
String coordString)
Simulates opening the context menu for the specified element (as might happen if the user
"right-clicked" on the element).
|
void |
controlKeyDown()
Press the control key and hold it down until doControlUp() is called or a new page is loaded.
|
void |
controlKeyUp()
Release the control key.
|
void |
createCookie(String nameValuePair,
String optionsString)
Create a new cookie whose path and domain are same with those of current page under test,
unless you specified a path for this cookie explicitly.
|
void |
deleteAllVisibleCookies()
Calls deleteCookie with recurse=true on all cookies visible to the current page.
|
void |
deleteCookie(String name,
String optionsString)
Delete a named cookie with specified path and domain.
|
void |
deselectPopUp()
Selects the main window.
|
void |
doubleClick(String locator)
Double clicks on a link, button, checkbox or radio button.
|
void |
doubleClickAt(String locator,
String coordString)
Doubleclicks on a link, button, checkbox or radio button.
|
void |
dragAndDrop(String locator,
String movementsString)
Drags an element a certain distance and then drops it
|
void |
dragAndDropToObject(String locatorOfObjectToBeDragged,
String locatorOfDragDestinationObject)
Drags an element and drops it on another element
|
void |
dragdrop(String locator,
String movementsString)
deprecated - use dragAndDrop instead
|
void |
fireEvent(String locator,
String eventName)
Explicitly simulate an event, to trigger the corresponding "onevent" handler.
|
void |
focus(String locator)
Move the focus to the specified element; for example, if the element is an input field, move
the cursor to that field.
|
String |
getAlert()
Retrieves the message of a JavaScript alert generated during the previous action, or fail if
there were no alerts.
|
String[] |
getAllButtons()
Returns the IDs of all buttons on the page.
|
String[] |
getAllFields()
Returns the IDs of all input fields on the page.
|
String[] |
getAllLinks()
Returns the IDs of all links on the page.
|
String[] |
getAllWindowIds()
Returns the IDs of all windows that the browser knows about.
|
String[] |
getAllWindowNames()
Returns the names of all windows that the browser knows about.
|
String[] |
getAllWindowTitles()
Returns the titles of all windows that the browser knows about.
|
String |
getAttribute(String attributeLocator)
Gets the value of an element attribute.
|
String[] |
getAttributeFromAllWindows(String attributeName)
Returns every instance of some attribute from all known windows.
|
String |
getBodyText()
Gets the entire text of the page.
|
String |
getConfirmation()
Retrieves the message of a JavaScript confirmation dialog generated during the previous action.
|
String |
getCookie()
Return all cookies of the current page under test.
|
String |
getCookieByName(String name)
Returns the value of the cookie with the specified name, or throws an error if the cookie is
not present.
|
Number |
getCssCount(String css)
Returns the number of nodes that match the specified css selector, eg.
|
Number |
getCursorPosition(String locator)
Retrieves the text cursor position in the given input element or textarea; beware, this may not
work perfectly on all browsers.
|
Number |
getElementHeight(String locator)
Retrieves the height of an element
|
Number |
getElementIndex(String locator)
Get the relative index of an element to its parent (starting from 0).
|
Number |
getElementPositionLeft(String locator)
Retrieves the horizontal position of an element
|
Number |
getElementPositionTop(String locator)
Retrieves the vertical position of an element
|
Number |
getElementWidth(String locator)
Retrieves the width of an element
|
String |
getEval(String script)
Gets the result of evaluating the specified JavaScript snippet.
|
String |
getExpression(String expression)
Returns the specified expression.
|
String |
getHtmlSource()
Returns the entire HTML source between the opening and closing "html" tags.
|
String |
getLocation()
Gets the absolute URL of the current page.
|
String |
getLog()
Get RC logs associated with this session.
|
Number |
getMouseSpeed()
Returns the number of pixels between "mousemove" events during dragAndDrop commands
(default=10).
|
String |
getPrompt()
Retrieves the message of a JavaScript question prompt dialog generated during the previous
action.
|
String |
getSelectedId(String selectLocator)
Gets option element ID for selected option in the specified select element.
|
String[] |
getSelectedIds(String selectLocator)
Gets all option element IDs for selected options in the specified select or multi-select
element.
|
String |
getSelectedIndex(String selectLocator)
Gets option index (option number, starting at 0) for selected option in the specified select
element.
|
String[] |
getSelectedIndexes(String selectLocator)
Gets all option indexes (option number, starting at 0) for selected options in the specified
select or multi-select element.
|
String |
getSelectedLabel(String selectLocator)
Gets option label (visible text) for selected option in the specified select element.
|
String[] |
getSelectedLabels(String selectLocator)
Gets all option labels (visible text) for selected options in the specified select or
multi-select element.
|
String |
getSelectedValue(String selectLocator)
Gets option value (value attribute) for selected option in the specified select element.
|
String[] |
getSelectedValues(String selectLocator)
Gets all option values (value attributes) for selected options in the specified select or
multi-select element.
|
String[] |
getSelectOptions(String selectLocator)
Gets all option labels in the specified select drop-down.
|
String |
getSpeed()
Get execution speed (i.e., get the millisecond length of the delay following each selenium
operation).
|
String |
getTable(String tableCellAddress)
Gets the text from a cell of a table.
|
String |
getText(String locator)
Gets the text of an element.
|
String |
getTitle()
Gets the title of the current page.
|
String |
getValue(String locator)
Gets the (whitespace-trimmed) value of an input field (or anything else with a value
parameter).
|
boolean |
getWhetherThisFrameMatchFrameExpression(String currentFrameString,
String target)
Determine whether current/locator identify the frame containing this running code.
|
boolean |
getWhetherThisWindowMatchWindowExpression(String currentWindowString,
String target)
Determine whether currentWindowString plus target identify the window containing this running
code.
|
Number |
getXpathCount(String xpath)
Returns the number of nodes that match the specified xpath, eg.
|
void |
goBack()
Simulates the user clicking the "back" button on their browser.
|
void |
highlight(String locator)
Briefly changes the backgroundColor of the specified element yellow.
|
void |
ignoreAttributesWithoutValue(String ignore)
Specifies whether Selenium will ignore xpath attributes that have no value, i.e.
|
boolean |
isAlertPresent()
Has an alert occurred?
|
boolean |
isChecked(String locator)
Gets whether a toggle-button (checkbox/radio) is checked.
|
boolean |
isConfirmationPresent()
Has confirm() been called?
|
boolean |
isCookiePresent(String name)
Returns true if a cookie with the specified name is present, or false otherwise.
|
boolean |
isEditable(String locator)
Determines whether the specified input element is editable, ie hasn't been disabled.
|
boolean |
isElementPresent(String locator)
Verifies that the specified element is somewhere on the page.
|
boolean |
isOrdered(String locator1,
String locator2)
Check if these two elements have same parent and are ordered siblings in the DOM.
|
boolean |
isPromptPresent()
Has a prompt occurred?
|
boolean |
isSomethingSelected(String selectLocator)
Determines whether some option in a drop-down menu is selected.
|
boolean |
isTextPresent(String pattern)
Verifies that the specified text pattern appears somewhere on the rendered page shown to the
user.
|
boolean |
isVisible(String locator)
Determines if the specified element is visible.
|
void |
keyDown(String locator,
String keySequence)
Simulates a user pressing a key (without releasing it yet).
|
void |
keyDownNative(String keycode)
Simulates a user pressing a key (without releasing it yet) by sending a native operating system
keystroke.
|
void |
keyPress(String locator,
String keySequence)
Simulates a user pressing and releasing a key.
|
void |
keyPressNative(String keycode)
Simulates a user pressing and releasing a key by sending a native operating system keystroke.
|
void |
keyUp(String locator,
String keySequence)
Simulates a user releasing a key.
|
void |
keyUpNative(String keycode)
Simulates a user releasing a key by sending a native operating system keystroke.
|
void |
metaKeyDown()
Press the meta key and hold it down until doMetaUp() is called or a new page is loaded.
|
void |
metaKeyUp()
Release the meta key.
|
void |
mouseDown(String locator)
Simulates a user pressing the left mouse button (without releasing it yet) on the specified
element.
|
void |
mouseDownAt(String locator,
String coordString)
Simulates a user pressing the left mouse button (without releasing it yet) at the specified
location.
|
void |
mouseDownRight(String locator)
Simulates a user pressing the right mouse button (without releasing it yet) on the specified
element.
|
void |
mouseDownRightAt(String locator,
String coordString)
Simulates a user pressing the right mouse button (without releasing it yet) at the specified
location.
|
void |
mouseMove(String locator)
Simulates a user pressing the mouse button (without releasing it yet) on the specified element.
|
void |
mouseMoveAt(String locator,
String coordString)
Simulates a user pressing the mouse button (without releasing it yet) on the specified element.
|
void |
mouseOut(String locator)
Simulates a user moving the mouse pointer away from the specified element.
|
void |
mouseOver(String locator)
Simulates a user hovering a mouse over the specified element.
|
void |
mouseUp(String locator)
Simulates the event that occurs when the user releases the mouse button (i.e., stops holding
the button down) on the specified element.
|
void |
mouseUpAt(String locator,
String coordString)
Simulates the event that occurs when the user releases the mouse button (i.e., stops holding
the button down) at the specified location.
|
void |
mouseUpRight(String locator)
Simulates the event that occurs when the user releases the right mouse button (i.e., stops
holding the button down) on the specified element.
|
void |
mouseUpRightAt(String locator,
String coordString)
Simulates the event that occurs when the user releases the right mouse button (i.e., stops
holding the button down) at the specified location.
|
void |
open(String url)
Opens an URL in the test frame.
|
void |
open(String url,
String ignoreResponseCode)
Opens an URL in the test frame.
|
void |
openWindow(String url,
String windowID)
Opens a popup window (if a window with that ID isn't already open).
|
void |
refresh()
Simulates the user clicking the "Refresh" button on their browser.
|
void |
removeAllSelections(String locator)
Unselects all of the selected options in a multi-select element.
|
void |
removeScript(String scriptTagId)
Removes a script tag from the Selenium document identified by the given id.
|
void |
removeSelection(String locator,
String optionLocator)
Remove a selection from the set of selected options in a multi-select element using an option
locator.
|
String |
retrieveLastRemoteControlLogs()
Retrieve the last messages logged on a specific remote control.
|
void |
rollup(String rollupName,
String kwargs)
Executes a command rollup, which is a series of commands with a unique name, and optionally
arguments that control the generation of the set of commands.
|
void |
runScript(String script)
Creates a new "script" tag in the body of the current test window, and adds the specified text
into the body of the command.
|
void |
select(String selectLocator,
String optionLocator)
Select an option from a drop-down using an option locator.
|
void |
selectFrame(String locator)
Selects a frame within the current window.
|
void |
selectPopUp(String windowID)
Simplifies the process of selecting a popup window (and does not offer functionality beyond
what
selectWindow() already provides). |
void |
selectWindow(String windowID)
Selects a popup window using a window locator; once a popup window has been selected, all
commands go to that window.
|
void |
setBrowserLogLevel(String logLevel)
Sets the threshold for browser-side logging messages; log messages beneath this threshold will
be discarded.
|
void |
setContext(String context)
Writes a message to the status bar and adds a note to the browser-side log.
|
void |
setCursorPosition(String locator,
String position)
Moves the text cursor to the specified position in the given input element or textarea.
|
void |
setExtensionJs(String extensionJs)
Sets the per-session extension Javascript
|
void |
setMouseSpeed(String pixels)
Configure the number of pixels between "mousemove" events during dragAndDrop commands
(default=10).
|
void |
setSpeed(String value)
Set execution speed (i.e., set the millisecond length of a delay which will follow each
selenium operation).
|
void |
setTimeout(String timeout)
Specifies the amount of time that Selenium will wait for actions to complete.
|
void |
shiftKeyDown()
Press the shift key and hold it down until doShiftUp() is called or a new page is loaded.
|
void |
shiftKeyUp()
Release the shift key.
|
void |
showContextualBanner()
Shows in the RemoteRunner a banner for the current test The banner is 'classname : methodname'
where those two are derived from the caller The method name will be unCamelCased with the
insertion of spaces at word boundaries
|
void |
showContextualBanner(String className,
String methodName)
Shows in the RemoteRunner a banner for the current test The banner is 'classname : methodname'
The method name will be unCamelCased with the insertion of spaces at word boundaries
|
void |
shutDownSeleniumServer()
Kills the running Selenium Server and all browser sessions.
|
void |
start()
Launches the browser with a new Selenium session
|
void |
start(Object optionsObject)
Starts a new Selenium testing session with a configuration options object
|
void |
start(String optionsString)
Starts a new Selenium testing session with a String, representing a configuration
|
void |
stop()
Ends the test session, killing the browser
|
void |
submit(String formLocator)
Submit the specified form.
|
void |
type(String locator,
String value)
Sets the value of an input field, as though you typed it in.
|
void |
typeKeys(String locator,
String value)
Simulates keystroke events on the specified element, as though you typed the value key-by-key.
|
void |
uncheck(String locator)
Uncheck a toggle-button (checkbox/radio)
|
void |
useXpathLibrary(String libraryName)
Allows choice of one of the available libraries.
|
void |
waitForCondition(String script,
String timeout)
Runs the specified JavaScript snippet repeatedly until it evaluates to "true".
|
void |
waitForFrameToLoad(String frameAddress,
String timeout)
Waits for a new frame to load.
|
void |
waitForPageToLoad(String timeout)
Waits for a new page to load.
|
void |
waitForPopUp(String windowID,
String timeout)
Waits for a popup window to appear and load up.
|
void |
windowFocus()
Gives focus to the currently selected window
|
void |
windowMaximize()
Resize currently selected window to take up the entire screen
|
void setExtensionJs(String extensionJs)
void start()
void start(String optionsString)
void start(Object optionsObject)
void stop()
void showContextualBanner()
void showContextualBanner(String className, String methodName)
void click(String locator)
locator
- an element locatorvoid doubleClick(String locator)
locator
- an element locatorvoid contextMenu(String locator)
locator
- an element locatorvoid clickAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void doubleClickAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void contextMenuAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void fireEvent(String locator, String eventName)
locator
- an element locatoreventName
- the event name, e.g. "focus" or "blur"void focus(String locator)
locator
- an element locatorvoid keyPress(String locator, String keySequence)
locator
- an element locatorkeySequence
- 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".void shiftKeyDown()
void shiftKeyUp()
void metaKeyDown()
void metaKeyUp()
void altKeyDown()
void altKeyUp()
void controlKeyDown()
void controlKeyUp()
void keyDown(String locator, String keySequence)
locator
- an element locatorkeySequence
- 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".void keyUp(String locator, String keySequence)
locator
- an element locatorkeySequence
- 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".void mouseOver(String locator)
locator
- an element locatorvoid mouseOut(String locator)
locator
- an element locatorvoid mouseDown(String locator)
locator
- an element locatorvoid mouseDownRight(String locator)
locator
- an element locatorvoid mouseDownAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void mouseDownRightAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void mouseUp(String locator)
locator
- an element locatorvoid mouseUpRight(String locator)
locator
- an element locatorvoid mouseUpAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void mouseUpRightAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void mouseMove(String locator)
locator
- an element locatorvoid mouseMoveAt(String locator, String coordString)
locator
- an element locatorcoordString
- specifies the x,y position (i.e. - 10,20) of the mouse event relative to the
element returned by the locator.void type(String locator, String value)
Can also be used to set the value of combo boxes, check boxes, etc. In these cases, value should be the value of the option selected, not the visible text.
locator
- an element locatorvalue
- the value to typevoid typeKeys(String locator, String value)
This is a convenience method for calling keyDown, keyUp, keyPress for every character in the specified string; this is useful for dynamic UI widgets (like auto-completing combo boxes) that require explicit key events.
Unlike the simple "type" command, which forces the specified value into the page directly, this command may or may not have any visible effect, even in cases where typing keys would normally have a visible effect. For example, if you use "typeKeys" on a form element, you may or may not see the results of what you typed in the field.
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 send the keystroke events corresponding to what you just typed.
locator
- an element locatorvalue
- the value to typevoid setSpeed(String value)
value
- the number of milliseconds to pause after operationString getSpeed()
String getLog()
void check(String locator)
locator
- an element locatorvoid uncheck(String locator)
locator
- an element locatorvoid select(String selectLocator, String optionLocator)
Option locators provide different ways of specifying options of an HTML Select element (e.g. for selecting a specific option, or for asserting that the selected option satisfies a specification). There are several forms of Select Option Locator.
If no option locator prefix is provided, the default behaviour is to match on label.
selectLocator
- an element locator identifying a drop-down menuoptionLocator
- an option locator (a label by default)void addSelection(String locator, String optionLocator)
locator
- an element locator identifying a multi-select boxoptionLocator
- an option locator (a label by default)void removeSelection(String locator, String optionLocator)
locator
- an element locator identifying a multi-select boxoptionLocator
- an option locator (a label by default)void removeAllSelections(String locator)
locator
- an element locator identifying a multi-select boxvoid submit(String formLocator)
formLocator
- an element locator for the form you want to submitvoid open(String url, String ignoreResponseCode)
url
- the URL to open; may be relative or absoluteignoreResponseCode
- if set to true, ignores http response code.void open(String url)
url
- the URL to open; may be relative or absolutevoid openWindow(String url, String windowID)
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). In those cases, you can force Selenium to notice the open window's name by using the Selenium openWindow command, using an empty (blank) url, like this: openWindow("", "myFunnyWindow").
url
- the URL to open, which can be blankwindowID
- the JavaScript window ID of the window to selectvoid selectWindow(String windowID)
Window locators provide different ways of specifying the window object: by title, by internal JavaScript "name," or by JavaScript variable.
If no window locator prefix is provided, we'll try to guess what you mean like this:
1.) if windowID is null, (or the string "null") then it is assumed the user is referring to the original window instantiated by the browser).
2.) if the value of the "windowID" parameter is a JavaScript variable name in the current application window, then it is assumed that this variable contains the return value from a call to the JavaScript window.open() method.
3.) Otherwise, selenium looks in a hash it maintains that maps string names to window "names".
4.) If that fails, we'll try looping over all of the known windows to try to find the appropriate "title". Since "title" is not necessarily unique, this may have unexpected behavior.
If you're having trouble figuring out the name of a window that you want to manipulate, look at the Selenium log messages which identify the names of windows created via window.open (and therefore intercepted by Selenium). You will see messages like the following for each window as it is opened:
debug: window.open call intercepted; window ID (which you can use with selectWindow()) is "myNewWindow"
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). (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 an empty (blank) url, like this: openWindow("", "myFunnyWindow").
windowID
- the JavaScript window ID of the window to selectvoid selectPopUp(String windowID)
selectWindow()
already provides).
windowID
is either not specified, or specified as "null", the first non-top
window is selected. The top window is the one that would be selected by
selectWindow()
without providing a windowID
. This should not be used
when more than one popup window is in play.windowID
as the following
in order: 1) the "name" of the window, as specified to window.open()
; 2) a
javascript variable which is a reference to a window; and 3) the title of the window. This is
the same ordered lookup performed by selectWindow
.windowID
- an identifier for the popup window, which can take on a number of different
meaningsvoid deselectPopUp()
selectWindow()
and
specifying no value for windowID
.void selectFrame(String locator)
You may also use a DOM expression to identify the frame you want directly, like this:
dom=frames["main"].frames["subframe"]
locator
- an element locator identifying a frame or iframeboolean getWhetherThisFrameMatchFrameExpression(String currentFrameString, String target)
This is useful in proxy injection mode, where this code runs in every browser frame and window, and sometimes the selenium server needs to identify the "current" frame. In this case, when the test calls selectFrame, this routine is called for each frame to figure out which one has been selected. The selected frame will return true, while all others will return false.
currentFrameString
- starting frametarget
- new frame (which might be relative to the current one)boolean getWhetherThisWindowMatchWindowExpression(String currentWindowString, String target)
This is useful in proxy injection mode, where this code runs in every browser frame and window, and sometimes the selenium server needs to identify the "current" window. In this case, when the test calls selectWindow, this routine is called for each window to figure out which one has been selected. The selected window will return true, while all others will return false.
currentWindowString
- starting windowtarget
- new window (which might be relative to the current one, e.g., "_parent")void waitForPopUp(String windowID, String timeout)
windowID
- the JavaScript window "name" of the window that will appear (not the text of
the title bar) If unspecified, or specified as "null", this command will wait for the
first non-top window to appear (don't rely on this if you are working with multiple
popups simultaneously).timeout
- a timeout in milliseconds, after which the action will return with an error. If
this value is not specified, the default Selenium timeout will be used. See the
setTimeout() command.void chooseCancelOnNextConfirmation()
By default, Selenium's overridden window.confirm() function will return true, as if the user had manually clicked OK; after running this command, the next call to confirm() will return false, as if the user had clicked Cancel. Selenium will then resume using the default behavior for future confirmations, automatically returning true (OK) unless/until you explicitly call this command for each confirmation.
Take note - every time a confirmation comes up, you must consume it with a corresponding getConfirmation, or else the next selenium operation will fail.
void chooseOkOnNextConfirmation()
Undo the effect of calling chooseCancelOnNextConfirmation. Note that Selenium's overridden window.confirm() function will normally automatically return true, as if the user had manually clicked OK, so you shouldn't need to use this command unless for some reason you need to change your mind prior to the next confirmation. After any confirmation, Selenium will resume using the default behavior for future confirmations, automatically returning true (OK) unless/until you explicitly call chooseCancelOnNextConfirmation for each confirmation.
Take note - every time a confirmation comes up, you must consume it with a corresponding getConfirmation, or else the next selenium operation will fail.
void answerOnNextPrompt(String answer)
answer
- the answer to give in response to the prompt pop-upvoid goBack()
void refresh()
void close()
boolean isAlertPresent()
This function never throws an exception
boolean isPromptPresent()
This function never throws an exception
boolean isConfirmationPresent()
This function never throws an exception
String getAlert()
Getting an alert has the same effect as manually clicking OK. If an alert is generated but you do not consume it with getAlert, the next Selenium action will fail.
Under Selenium, JavaScript alerts will NOT pop up a visible alert dialog.
Selenium does NOT support JavaScript alerts that are generated in a page's onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until someone manually clicks OK.
String getConfirmation()
By default, the confirm function will return true, having the same effect as manually clicking OK. This can be changed by prior execution of the chooseCancelOnNextConfirmation command.
If an confirmation is generated but you do not consume it with getConfirmation, the next Selenium action will fail.
NOTE: under Selenium, JavaScript confirmations will NOT pop up a visible dialog.
NOTE: Selenium does NOT support JavaScript confirmations that are generated in a page's onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until you manually click OK.
String getPrompt()
Successful handling of the prompt requires prior execution of the answerOnNextPrompt command. If a prompt is generated but you do not get/verify it, the next Selenium action will fail.
NOTE: under Selenium, JavaScript prompts will NOT pop up a visible dialog.
NOTE: Selenium does NOT support JavaScript prompts that are generated in a page's onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until someone manually clicks OK.
String getLocation()
String getTitle()
String getBodyText()
String getValue(String locator)
locator
- an element locatorString getText(String locator)
locator
- an element locatorvoid highlight(String locator)
locator
- an element locatorString getEval(String script)
Note that, by default, the snippet will run in the context of the "selenium" object itself, so
this
will refer to the Selenium object. Use window
to refer to the
window of your application, e.g. window.document.getElementById('foo')
If you need to use a locator to refer to a single element in your application page, you can use
this.browserbot.findElement("id=foo")
where "id=foo" is your locator.
script
- the JavaScript snippet to runboolean isChecked(String locator)
locator
- an element locator pointing to a checkbox or radio
buttonString getTable(String tableCellAddress)
tableCellAddress
- a cell address, e.g. "foo.1.4"String[] getSelectedLabels(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString getSelectedLabel(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString[] getSelectedValues(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString getSelectedValue(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString[] getSelectedIndexes(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString getSelectedIndex(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString[] getSelectedIds(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString getSelectedId(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuboolean isSomethingSelected(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString[] getSelectOptions(String selectLocator)
selectLocator
- an element locator identifying a drop-down menuString getAttribute(String attributeLocator)
attributeLocator
- an element locator followed by an @ sign and then the name of the
attribute, e.g. "foo@bar"boolean isTextPresent(String pattern)
pattern
- a pattern to match with the text of the pageboolean isElementPresent(String locator)
locator
- an element locatorboolean isVisible(String locator)
locator
- an element locatorboolean isEditable(String locator)
locator
- an element locatorString[] getAllButtons()
If a given button has no ID, it will appear as "" in this array.
String[] getAllLinks()
If a given link has no ID, it will appear as "" in this array.
String[] getAllFields()
If a given field has no ID, it will appear as "" in this array.
String[] getAttributeFromAllWindows(String attributeName)
attributeName
- name of an attribute on the windowsvoid dragdrop(String locator, String movementsString)
locator
- an element locatormovementsString
- offset in pixels from the current location to which the element should
be moved, e.g., "+70,-300"void setMouseSpeed(String pixels)
Setting this value to 0 means that we'll send a "mousemove" event to every single pixel in between the start location and the end location; that can be very slow, and may cause some browsers to force the JavaScript to timeout.
If the mouse speed is greater than the distance between the two dragged objects, we'll just send one "mousemove" at the start location and then one final one at the end location.
pixels
- the number of pixels between "mousemove" eventsNumber getMouseSpeed()
void dragAndDrop(String locator, String movementsString)
locator
- an element locatormovementsString
- offset in pixels from the current location to which the element should
be moved, e.g., "+70,-300"void dragAndDropToObject(String locatorOfObjectToBeDragged, String locatorOfDragDestinationObject)
locatorOfObjectToBeDragged
- an element to be draggedlocatorOfDragDestinationObject
- an element whose location (i.e., whose center-most pixel)
will be the point where locatorOfObjectToBeDragged is droppedvoid windowFocus()
void windowMaximize()
String[] getAllWindowIds()
String[] getAllWindowNames()
String[] getAllWindowTitles()
String getHtmlSource()
void setCursorPosition(String locator, String position)
locator
- an element locator pointing to an input element or
textareaposition
- 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.Number getElementIndex(String locator)
locator
- an element locator pointing to an elementboolean isOrdered(String locator1, String locator2)
locator1
- an element locator pointing to the first elementlocator2
- an element locator pointing to the second elementNumber getElementPositionLeft(String locator)
locator
- an element locator pointing to an element OR an element
itselfNumber getElementPositionTop(String locator)
locator
- an element locator pointing to an element OR an element
itselfNumber getElementWidth(String locator)
locator
- an element locator pointing to an elementNumber getElementHeight(String locator)
locator
- an element locator pointing to an elementNumber getCursorPosition(String locator)
Specifically, if the cursor/selection has been cleared by JavaScript, this command will tend to return the position of the last location of the cursor, even though the cursor is now gone from the page. This is filed as SEL-243.
This method will fail if the specified element isn't an input element or textarea, or there is no cursor in the element.locator
- an element locator pointing to an input element or
textareaString getExpression(String expression)
This is useful because of JavaScript preprocessing. It is used to generate commands like assertExpression and waitForExpression.
expression
- the value to returnNumber getXpathCount(String xpath)
xpath
- the xpath expression to evaluate. do NOT wrap this expression in a 'count()'
function; we will do that for you.Number getCssCount(String css)
css
- the css selector to evaluate. do NOT wrap this expression in a 'count()' function;
we will do that for you.void assignId(String locator, String identifier)
locator
- an element locator pointing to an elementidentifier
- a string to be used as the ID of the specified elementvoid allowNativeXpath(String allow)
allow
- boolean, true means we'll prefer to use native XPath; false means we'll only use
JS XPathvoid ignoreAttributesWithoutValue(String ignore)
ignore
- boolean, true means we'll ignore attributes without value at the expense of xpath
"correctness"; false means we'll sacrifice speed for correctness.void waitForCondition(String script, String timeout)
Note that, by default, the snippet will be run in the runner's test window, not in the window
of your application. To get the window of your application, you can use the JavaScript snippet
selenium.browserbot.getCurrentWindow()
, and then run your JavaScript in there
script
- the JavaScript snippet to runtimeout
- a timeout in milliseconds, after which this command will return with an errorvoid setTimeout(String timeout)
Actions that require waiting include "open" and the "waitFor*" actions.
The default timeout is 30 seconds.timeout
- a timeout in milliseconds, after which the action will return with an errorvoid waitForPageToLoad(String timeout)
You can use this command instead of the "AndWait" suffixes, "clickAndWait", "selectAndWait", "typeAndWait" etc. (which are only available in the JS API).
Selenium constantly keeps track of new pages loading, and sets a "newPageLoaded" flag when it first notices a page load. Running any other Selenium command after turns the flag to false. Hence, if you want to wait for a page to load, you must wait immediately after a Selenium command that caused a page-load.
timeout
- a timeout in milliseconds, after which this command will return with an errorvoid waitForFrameToLoad(String frameAddress, String timeout)
Selenium constantly keeps track of new pages and frames loading, and sets a "newPageLoaded" flag when it first notices a page load.
See waitForPageToLoad for more information.frameAddress
- FrameAddress from the server sidetimeout
- a timeout in milliseconds, after which this command will return with an errorString getCookie()
String getCookieByName(String name)
name
- the name of the cookieboolean isCookiePresent(String name)
name
- the name of the cookievoid createCookie(String nameValuePair, String optionsString)
nameValuePair
- name and value of the cookie in a format "name=value"optionsString
- options for the cookie. Currently supported options include 'path',
'max_age' and 'domain'. the optionsString's format is
"path=/path/, max_age=60, domain=.foo.com". The order of options are irrelevant, the
unit of the value of 'max_age' is second. Note that specifying a domain that isn't a
subset of the current domain will usually fail.void deleteCookie(String name, String optionsString)
name
- the name of the cookie to be deletedoptionsString
- options for the cookie. Currently supported options include 'path',
'domain' and 'recurse.' The optionsString's format is
"path=/path/, domain=.foo.com, recurse=true". The order of options are irrelevant. Note
that specifying a domain that isn't a subset of the current domain will usually fail.void deleteAllVisibleCookies()
void setBrowserLogLevel(String logLevel)
logLevel
- one of the following: "debug", "info", "warn", "error" or "off"void runScript(String script)
script
- the JavaScript snippet to runvoid addLocationStrategy(String strategyName, String functionDefinition)
strategyName
- the name of the strategy to define; this should use only letters [a-zA-Z]
with no spaces or other punctuation.functionDefinition
- a string defining the body of a function in JavaScript. For example:
return inDocument.getElementById(locator);
void captureEntirePageScreenshot(String filename, String kwargs)
filename
- the path to the file to persist the screenshot as. No filename extension will
be appended by default. Directories will not be created if they do not exist, and an
exception will be thrown, possibly by native code.kwargs
- a kwargs string that modifies the way the screenshot is captured. Example:
"background=#CCFFDD" . Currently valid options:
void rollup(String rollupName, String kwargs)
rollupName
- the name of the rollup commandkwargs
- keyword arguments string that influences how the rollup expands into commandsvoid addScript(String scriptContent, String scriptTagId)
scriptContent
- the Javascript content of the script to addscriptTagId
- (optional) the id of the new script tag. If specified, and an element with
this id already exists, this operation will fail.void removeScript(String scriptTagId)
scriptTagId
- the id of the script element to remove.void useXpathLibrary(String libraryName)
libraryName
- name of the desired library Only the following three can be chosen:
void setContext(String context)
context
- the message to be sent to the browservoid attachFile(String fieldLocator, String fileLocator)
fieldLocator
- an element locatorfileLocator
- a URL pointing to the specified file. Before the file can be set in the
input field (fieldLocator), Selenium RC may need to transfer the file to the local
machine before attaching the file in a web page form. This is common in selenium grid
configurations where the RC server driving the browser is not the same machine that
started the test. Supported Browsers: Firefox ("*chrome") only.void captureScreenshot(String filename)
filename
- the absolute path to the file to be written, e.g. "c:\blah\screenshot.png"String captureScreenshotToString()
String captureNetworkTraffic(String type)
type
- The type of data to return the network traffic as. Valid values are: json, xml, or
plain.void addCustomRequestHeader(String key, String value)
key
- the header name.value
- the header value.String captureEntirePageScreenshotToString(String kwargs)
kwargs
- A kwargs string that modifies the way the screenshot is captured. Example:
"background=#CCFFDD". This may be useful to set for capturing screenshots of
less-than-ideal layouts, for example where absolute positioning causes the calculation
of the canvas dimension to fail and a black background is exposed (possibly obscuring
black text).void shutDownSeleniumServer()
String retrieveLastRemoteControlLogs()
void keyDownNative(String keycode)
keycode
- an integer keycode number corresponding to a java.awt.event.KeyEvent; note that
Java keycodes are NOT the same thing as JavaScript keycodes!void keyUpNative(String keycode)
keycode
- an integer keycode number corresponding to a java.awt.event.KeyEvent; note that
Java keycodes are NOT the same thing as JavaScript keycodes!void keyPressNative(String keycode)
keycode
- an integer keycode number corresponding to a java.awt.event.KeyEvent; note that
Java keycodes are NOT the same thing as JavaScript keycodes!Copyright © 2013. All Rights Reserved.