|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.thoughtworks.selenium.DefaultSelenium
The default implementation of the Selenium interface; end users will primarily interact with this object.
| Field Summary | |
protected CommandProcessor |
commandProcessor
|
| Constructor Summary | |
DefaultSelenium(CommandProcessor processor)
Uses an arbitrary CommandProcessor |
|
DefaultSelenium(java.lang.String serverHost,
int serverPort,
java.lang.String browserStartCommand,
java.lang.String browserURL)
Uses a CommandBridgeClient, specifying a server host/port, a command to launch the browser, and a starting URL for the browser. |
|
| Method Summary | |
void |
addSelection(java.lang.String locator,
java.lang.String optionLocator)
Add a selection to the set of selected options in a multi-select element using an option locator. |
void |
answerOnNextPrompt(java.lang.String answer)
Instructs Selenium to return the specified answer string in response to the next JavaScript prompt [window.prompt()]. |
void |
check(java.lang.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. |
void |
click(java.lang.String locator)
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 |
fireEvent(java.lang.String locator,
java.lang.String eventName)
Explicitly simulate an event, to trigger the corresponding "onevent" handler. |
java.lang.String |
getAlert()
Retrieves the message of a JavaScript alert generated during the previous action, or fail if there were no alerts. |
java.lang.String[] |
getAllButtons()
Returns the IDs of all buttons on the page. |
java.lang.String[] |
getAllFields()
Returns the IDs of all input fields on the page. |
java.lang.String[] |
getAllLinks()
Returns the IDs of all links on the page. |
java.lang.String |
getAttribute(java.lang.String attributeLocator)
Gets the value of an element attribute. |
java.lang.String |
getBodyText()
Gets the entire text of the page. |
java.lang.String |
getConfirmation()
Retrieves the message of a JavaScript confirmation dialog generated during the previous action. |
java.lang.Number |
getCursorPosition(java.lang.String locator)
Retrieves the text cursor position in the given input element or textarea; beware, this may not work perfectly on all browsers. |
java.lang.String |
getEval(java.lang.String script)
Gets the result of evaluating the specified JavaScript snippet. |
java.lang.String |
getExpression(java.lang.String expression)
Returns the specified expression. |
java.lang.String |
getHtmlSource()
Returns the entire HTML source between the opening and closing "html" tags. |
java.lang.String |
getLocation()
Gets the absolute URL of the current page. |
java.lang.String |
getPrompt()
Retrieves the message of a JavaScript question prompt dialog generated during the previous action. |
java.lang.String |
getSelectedId(java.lang.String selectLocator)
Gets option element ID for selected option in the specified select element. |
java.lang.String[] |
getSelectedIds(java.lang.String selectLocator)
Gets all option element IDs for selected options in the specified select or multi-select element. |
java.lang.String |
getSelectedIndex(java.lang.String selectLocator)
Gets option index (option number, starting at 0) for selected option in the specified select element. |
java.lang.String[] |
getSelectedIndexes(java.lang.String selectLocator)
Gets all option indexes (option number, starting at 0) for selected options in the specified select or multi-select element. |
java.lang.String |
getSelectedLabel(java.lang.String selectLocator)
Gets option label (visible text) for selected option in the specified select element. |
java.lang.String[] |
getSelectedLabels(java.lang.String selectLocator)
Gets all option labels (visible text) for selected options in the specified select or multi-select element. |
java.lang.String |
getSelectedValue(java.lang.String selectLocator)
Gets option value (value attribute) for selected option in the specified select element. |
java.lang.String[] |
getSelectedValues(java.lang.String selectLocator)
Gets all option values (value attributes) for selected options in the specified select or multi-select element. |
java.lang.String[] |
getSelectOptions(java.lang.String selectLocator)
Gets all option labels in the specified select drop-down. |
java.lang.String |
getTable(java.lang.String tableCellAddress)
Gets the text from a cell of a table. |
java.lang.String |
getText(java.lang.String locator)
Gets the text of an element. |
java.lang.String |
getTitle()
Gets the title of the current page. |
java.lang.String |
getValue(java.lang.String locator)
Gets the (whitespace-trimmed) value of an input field (or anything else with a value parameter). |
void |
goBack()
Simulates the user clicking the "back" button on their browser. |
boolean |
isAlertPresent()
Has an alert occurred? |
boolean |
isChecked(java.lang.String locator)
Gets whether a toggle-button (checkbox/radio) is checked. |
boolean |
isConfirmationPresent()
Has confirm() been called? |
boolean |
isEditable(java.lang.String locator)
Determines whether the specified input element is editable, ie hasn't been disabled. |
boolean |
isElementPresent(java.lang.String locator)
Verifies that the specified element is somewhere on the page. |
boolean |
isPromptPresent()
Has a prompt occurred? |
boolean |
isSomethingSelected(java.lang.String selectLocator)
Determines whether some option in a drop-down menu is selected. |
boolean |
isTextPresent(java.lang.String pattern)
Verifies that the specified text pattern appears somewhere on the rendered page shown to the user. |
boolean |
isVisible(java.lang.String locator)
Determines if the specified element is visible. |
void |
keyDown(java.lang.String locator,
java.lang.String keycode)
Simulates a user pressing a key (without releasing it yet). |
void |
keyPress(java.lang.String locator,
java.lang.String keycode)
Simulates a user pressing and releasing a key. |
void |
keyUp(java.lang.String locator,
java.lang.String keycode)
Simulates a user releasing a key. |
void |
mouseDown(java.lang.String locator)
Simulates a user pressing the mouse button (without releasing it yet) on the specified element. |
void |
mouseOver(java.lang.String locator)
Simulates a user hovering a mouse over the specified element. |
void |
open(java.lang.String url)
Opens an URL in the test frame. |
void |
refresh()
Simulates the user clicking the "Refresh" button on their browser. |
void |
removeSelection(java.lang.String locator,
java.lang.String optionLocator)
Remove a selection from the set of selected options in a multi-select element using an option locator. |
void |
select(java.lang.String selectLocator,
java.lang.String optionLocator)
Select an option from a drop-down using an option locator. |
void |
selectWindow(java.lang.String windowID)
Selects a popup window; once a popup window has been selected, all commands go to that window. |
void |
setContext(java.lang.String context,
java.lang.String logLevelThreshold)
Writes a message to the status bar and adds a note to the browser-side log. |
void |
setCursorPosition(java.lang.String locator,
java.lang.String position)
Moves the text cursor to the specified position in the given input element or textarea. |
void |
setTimeout(java.lang.String timeout)
Specifies the amount of time that Selenium will wait for actions to complete. |
void |
start()
Launches the browser with a new Selenium session |
void |
stop()
Ends the test session, killing the browser |
void |
submit(java.lang.String formLocator)
Submit the specified form. |
void |
type(java.lang.String locator,
java.lang.String value)
Sets the value of an input field, as though you typed it in. |
void |
uncheck(java.lang.String locator)
Uncheck a toggle-button (checkbox/radio) |
void |
waitForCondition(java.lang.String script,
java.lang.String timeout)
Runs the specified JavaScript snippet repeatedly until it evaluates to "true". |
void |
waitForPageToLoad(java.lang.String timeout)
Waits for a new page to load. |
void |
waitForPopUp(java.lang.String windowID,
java.lang.String timeout)
Waits for a popup window to appear and load up. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected CommandProcessor commandProcessor
| Constructor Detail |
public DefaultSelenium(java.lang.String serverHost,
int serverPort,
java.lang.String browserStartCommand,
java.lang.String browserURL)
browserString may be any one of the following:
*firefox [absolute path] - Automatically launch a new Firefox process using a custom Firefox profile.
This profile will be automatically configured to use the Selenium Server as a proxy and to have all annoying prompts
("save your password?" "forms are insecure" "make Firefox your default browser?" disabled. You may optionally specify
an absolute path to your firefox executable, or just say "*firefox". If no absolute path is specified, we'll look for
firefox.exe in a default location (normally c:\program files\mozilla firefox\firefox.exe), which you can override by
setting the Java system property firefoxDefaultPath to the correct path to Firefox.*iexplore [absolute path] - Automatically launch a new Internet Explorer process using custom Windows registry settings.
This process will be automatically configured to use the Selenium Server as a proxy and to have all annoying prompts
("save your password?" "forms are insecure" "make Firefox your default browser?" disabled. You may optionally specify
an absolute path to your iexplore executable, or just say "*iexplore". If no absolute path is specified, we'll look for
iexplore.exe in a default location (normally c:\program files\internet explorer\iexplore.exe), which you can override by
setting the Java system property iexploreDefaultPath to the correct path to Internet Explorer./path/to/my/browser [other arguments] - You may also simply specify the absolute path to your browser
executable, or use a relative path to your executable (which we'll try to find on your path). Warning: If you
specify your own custom browser, it's up to you to configure it correctly. At a minimum, you'll need to configure your
browser to use the Selenium Server as a proxy, and disable all browser-specific prompting.
serverHost - the host name on which the Selenium Server residesserverPort - the port on which the Selenium Server is listeningbrowserURL - the starting URL including just a domain name. We'll start the browser pointing at the Selenium resources on this URL,
e.g. "http://www.google.com" would send the browser to "http://www.google.com/selenium-server/SeleneseRunner.html"public DefaultSelenium(CommandProcessor processor)
| Method Detail |
public void start()
Selenium
start in interface Seleniumpublic void stop()
Selenium
stop in interface Seleniumpublic void click(java.lang.String locator)
Selenium
click in interface Seleniumlocator - an element locator
public void fireEvent(java.lang.String locator,
java.lang.String eventName)
Selenium
fireEvent in interface Seleniumlocator - an element locatoreventName - the event name, e.g. "focus" or "blur"
public void keyPress(java.lang.String locator,
java.lang.String keycode)
Selenium
keyPress in interface Seleniumlocator - an element locatorkeycode - the numeric keycode of the key to be pressed, normally the
ASCII value of that key.
public void keyDown(java.lang.String locator,
java.lang.String keycode)
Selenium
keyDown in interface Seleniumlocator - an element locatorkeycode - the numeric keycode of the key to be pressed, normally the
ASCII value of that key.
public void keyUp(java.lang.String locator,
java.lang.String keycode)
Selenium
keyUp in interface Seleniumlocator - an element locatorkeycode - the numeric keycode of the key to be released, normally the
ASCII value of that key.public void mouseOver(java.lang.String locator)
Selenium
mouseOver in interface Seleniumlocator - an element locatorpublic void mouseDown(java.lang.String locator)
Selenium
mouseDown in interface Seleniumlocator - an element locator
public void type(java.lang.String locator,
java.lang.String value)
SeleniumCan 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.
type in interface Seleniumlocator - an element locatorvalue - the value to typepublic void check(java.lang.String locator)
Selenium
check in interface Seleniumlocator - an element locatorpublic void uncheck(java.lang.String locator)
Selenium
uncheck in interface Seleniumlocator - an element locator
public void select(java.lang.String selectLocator,
java.lang.String optionLocator)
SeleniumOption 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.
select in interface SeleniumselectLocator - an element locator identifying a drop-down menuoptionLocator - an option locator (a label by default)
public void addSelection(java.lang.String locator,
java.lang.String optionLocator)
Selenium
addSelection in interface Seleniumlocator - an element locator identifying a multi-select boxoptionLocator - an option locator (a label by default)for details of option locators
public void removeSelection(java.lang.String locator,
java.lang.String optionLocator)
Selenium
removeSelection in interface Seleniumlocator - an element locator identifying a multi-select boxoptionLocator - an option locator (a label by default)for details of option locatorspublic void submit(java.lang.String formLocator)
Selenium
submit in interface SeleniumformLocator - an element locator for the form you want to submitpublic void open(java.lang.String url)
Selenium
open in interface Seleniumurl - the URL to open; may be relative or absolutepublic void selectWindow(java.lang.String windowID)
Selenium
selectWindow in interface SeleniumwindowID - the JavaScript window ID of the window to select
public void waitForPopUp(java.lang.String windowID,
java.lang.String timeout)
Selenium
waitForPopUp in interface SeleniumwindowID - the JavaScript window ID of the window that will appeartimeout - a timeout in milliseconds, after which the action will return with an errorpublic void chooseCancelOnNextConfirmation()
Selenium
chooseCancelOnNextConfirmation in interface Seleniumpublic void answerOnNextPrompt(java.lang.String answer)
Selenium
answerOnNextPrompt in interface Seleniumanswer - the answer to give in response to the prompt pop-uppublic void goBack()
Selenium
goBack in interface Seleniumpublic void refresh()
Selenium
refresh in interface Seleniumpublic void close()
Selenium
close in interface Seleniumpublic boolean isAlertPresent()
SeleniumThis function never throws an exception
isAlertPresent in interface Seleniumpublic boolean isPromptPresent()
SeleniumThis function never throws an exception
isPromptPresent in interface Seleniumpublic boolean isConfirmationPresent()
SeleniumThis function never throws an exception
isConfirmationPresent in interface Seleniumpublic java.lang.String getAlert()
SeleniumGetting an alert has the same effect as manually clicking OK. If an alert is generated but you do not get/verify it, the next Selenium action will fail.
NOTE: under Selenium, JavaScript alerts will NOT pop up a visible alert dialog.
NOTE: 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.
getAlert in interface Seleniumpublic java.lang.String getConfirmation()
SeleniumBy 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 get/verify it, 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.
getConfirmation in interface Seleniumpublic java.lang.String getPrompt()
SeleniumSuccessful 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.
getPrompt in interface Seleniumpublic java.lang.String getLocation()
Selenium
getLocation in interface Seleniumpublic java.lang.String getTitle()
Selenium
getTitle in interface Seleniumpublic java.lang.String getBodyText()
Selenium
getBodyText in interface Seleniumpublic java.lang.String getValue(java.lang.String locator)
Selenium
getValue in interface Seleniumlocator - an element locator
public java.lang.String getText(java.lang.String locator)
Selenium
getText in interface Seleniumlocator - an element locator
public java.lang.String getEval(java.lang.String script)
SeleniumNote that, by default, the snippet will run in the context of the "selenium"
object itself, so this will refer to the Selenium object, and window will
refer to the top-level runner test window, not the window of your application.
If you need a reference to the window of your application, you can refer
to this.browserbot.getCurrentWindow() and if you need to use
a locator to refer to a single element in your application page, you can
use this.page().findElement("foo") where "foo" is your locator.
getEval in interface Seleniumscript - the JavaScript snippet to run
public boolean isChecked(java.lang.String locator)
Selenium
isChecked in interface Seleniumlocator - an element locator pointing to a checkbox or radio button
public java.lang.String getTable(java.lang.String tableCellAddress)
Selenium
getTable in interface SeleniumtableCellAddress - a cell address, e.g. "foo.1.4"
public java.lang.String[] getSelectedLabels(java.lang.String selectLocator)
Selenium
getSelectedLabels in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String getSelectedLabel(java.lang.String selectLocator)
Selenium
getSelectedLabel in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String[] getSelectedValues(java.lang.String selectLocator)
Selenium
getSelectedValues in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String getSelectedValue(java.lang.String selectLocator)
Selenium
getSelectedValue in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String[] getSelectedIndexes(java.lang.String selectLocator)
Selenium
getSelectedIndexes in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String getSelectedIndex(java.lang.String selectLocator)
Selenium
getSelectedIndex in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String[] getSelectedIds(java.lang.String selectLocator)
Selenium
getSelectedIds in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String getSelectedId(java.lang.String selectLocator)
Selenium
getSelectedId in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public boolean isSomethingSelected(java.lang.String selectLocator)
Selenium
isSomethingSelected in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String[] getSelectOptions(java.lang.String selectLocator)
Selenium
getSelectOptions in interface SeleniumselectLocator - an element locator identifying a drop-down menu
public java.lang.String getAttribute(java.lang.String attributeLocator)
Selenium
getAttribute in interface SeleniumattributeLocator - an element locator followed by an
public boolean isTextPresent(java.lang.String pattern)
Selenium
isTextPresent in interface Seleniumpattern - a pattern to match with the text of the page
public boolean isElementPresent(java.lang.String locator)
Selenium
isElementPresent in interface Seleniumlocator - an element locator
public boolean isVisible(java.lang.String locator)
Selenium
isVisible in interface Seleniumlocator - an element locator
public boolean isEditable(java.lang.String locator)
Selenium
isEditable in interface Seleniumlocator - an element locator
public java.lang.String[] getAllButtons()
SeleniumIf a given button has no ID, it will appear as "" in this array.
getAllButtons in interface Seleniumpublic java.lang.String[] getAllLinks()
SeleniumIf a given link has no ID, it will appear as "" in this array.
getAllLinks in interface Seleniumpublic java.lang.String[] getAllFields()
SeleniumIf a given field has no ID, it will appear as "" in this array.
getAllFields in interface Seleniumpublic java.lang.String getHtmlSource()
Selenium
getHtmlSource in interface Selenium
public void setCursorPosition(java.lang.String locator,
java.lang.String position)
Selenium
setCursorPosition in interface Seleniumlocator - 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.public java.lang.Number getCursorPosition(java.lang.String locator)
SeleniumSpecifically, 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.
getCursorPosition in interface Seleniumlocator - an element locator pointing to an input element or textarea
public void setContext(java.lang.String context,
java.lang.String logLevelThreshold)
SeleniumIf logLevelThreshold is specified, set the threshold for logging to that level (debug, info, warn, error).
(Note that the browser-side logs will not be sent back to the server, and are invisible to the Client Driver.)
setContext in interface Seleniumcontext - the message to be sent to the browserlogLevelThreshold - one of "debug", "info", "warn", "error", sets the threshold for browser-side loggingpublic java.lang.String getExpression(java.lang.String expression)
SeleniumThis is useful because of JavaScript preprocessing. It is used to generate commands like assertExpression and waitForExpression.
getExpression in interface Seleniumexpression - the value to return
public void waitForCondition(java.lang.String script,
java.lang.String timeout)
SeleniumNote 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
waitForCondition in interface Seleniumscript - the JavaScript snippet to runtimeout - a timeout in milliseconds, after which this command will return with an errorpublic void setTimeout(java.lang.String timeout)
SeleniumActions that require waiting include "open" and the "waitFor*" actions.
The default timeout is 30 seconds.
setTimeout in interface Seleniumtimeout - a timeout in milliseconds, after which the action will return with an errorpublic void waitForPageToLoad(java.lang.String timeout)
SeleniumYou 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.
waitForPageToLoad in interface Seleniumtimeout - a timeout in milliseconds, after which this command will return with an error
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||