com.atlassian.selenium
Class SeleniumClient

java.lang.Object
  extended by com.thoughtworks.selenium.DefaultSelenium
      extended by com.atlassian.selenium.SeleniumClient
All Implemented Interfaces:
com.thoughtworks.selenium.Selenium

public class SeleniumClient
extends com.thoughtworks.selenium.DefaultSelenium

Extends the DefaultSelenium client to provide a more sensible implementation as well some extra utility methods such as keypress.


Nested Class Summary
static class SeleniumClient.Browser
           
 
Field Summary
protected  long ACTION_WAIT
          The maximum wait time for actions that don't require page loads.
protected  long PAGE_LOAD_WAIT
          The maximum page load wait time used by Selenium.
 
Fields inherited from class com.thoughtworks.selenium.DefaultSelenium
commandProcessor
 
Constructor Summary
SeleniumClient(SeleniumConfiguration config)
           
 
Method Summary
 void check(String name, String value)
          Checks a checkbox given a name and value.
 void click(String locator, boolean waitForPageToLoad)
          Click the element with the given locator and optionally wait for the page to load, using PAGE_LOAD_WAIT.
 void click(String locator, long timeoutMillis)
          Click the element with the given locator and wait for the page to load, for a maximum of timeoutMillis.
 void clickButton(String buttonText, boolean waitForPageToLoad)
           
 void clickButtonWithName(String buttonName, boolean waitForPageToLoad)
           
 void clickElementWithClass(String className)
           
 void clickElementWithCss(String cssSelector)
           
 void clickElementWithTitle(String title)
           
 void clickElementWithXpath(String xpath)
           
 void clickLinkWithText(String text, boolean waitForPageToLoad)
           
 SeleniumClient.Browser getBrowser()
           
 void keyPress(String locator, String key)
          This will type into a field by sending key down / key press / key up events.
 void open(String url)
          Unlike DefaultSelenium.open(java.lang.String), this opens the provided URL relative to the application context path.
 void open(String url, long timeoutMillis)
          Opens the given URL and waits a maximum of timeoutMillis for the page to load completely.
 void openNoWait(String url)
          Wait for page to load doesn't work the case of non-HTML based resources (like images).
 void selectOption(String selectName, String label)
           
 void start()
           
 void submit(String form, boolean waitForPageToLoad)
          Submit the named form locator and optionally wait for the page to load, using PAGE_LOAD_WAIT.
 void submit(String form, long timeoutMillis)
          Submit the given form and wait for the page to load, for a maximum of timeoutMillis.
 void typeInElementWithCss(String cssSelector, String text)
           
 void typeInElementWithName(String elementName, String text)
           
 void typeWithFullKeyEvents(String locator, String string)
          This will type into a field by first blanking it out and then sending key down / key press / key up events.
 void typeWithFullKeyEvents(String locator, String string, boolean reset)
          This will type into a field by first blanking it out and then sending key down / key press / key up events.
 void waitForCondition(String javascript)
          Executes the given Javascript in the context of the text page and waits for it to evaluate to true for a maximum of ACTION_WAIT milliseconds.
 void waitForCondition(String javascript, long timeoutMillis)
          Executes the given Javascript in the context of the text page and waits for it to evaluate to true for a maximum of timeoutMillis.
 void waitForPageToLoad()
          Waits for the page to load with the default timeout configured in SeleniumConfiguration.
 void waitForPageToLoad(long timeoutMillis)
          Overloads DefaultSelenium.waitForPageToLoad(String) to take in a long.
 
Methods inherited from class com.thoughtworks.selenium.DefaultSelenium
addCustomRequestHeader, addLocationStrategy, addScript, addSelection, allowNativeXpath, altKeyDown, altKeyUp, answerOnNextPrompt, assignId, attachFile, captureEntirePageScreenshot, captureEntirePageScreenshotToString, captureNetworkTraffic, captureScreenshot, captureScreenshotToString, check, chooseCancelOnNextConfirmation, chooseOkOnNextConfirmation, click, clickAt, close, contextMenu, contextMenuAt, controlKeyDown, controlKeyUp, createCookie, deleteAllVisibleCookies, deleteCookie, deselectPopUp, doubleClick, doubleClickAt, dragAndDrop, dragAndDropToObject, dragdrop, fireEvent, focus, getAlert, getAllButtons, getAllFields, getAllLinks, getAllWindowIds, getAllWindowNames, getAllWindowTitles, getAttribute, getAttributeFromAllWindows, getBodyText, getConfirmation, getCookie, getCookieByName, getCursorPosition, getElementHeight, getElementIndex, getElementPositionLeft, getElementPositionTop, getElementWidth, getEval, getExpression, getHtmlSource, getLocation, getMouseSpeed, getPrompt, getSelectedId, getSelectedIds, getSelectedIndex, getSelectedIndexes, getSelectedLabel, getSelectedLabels, getSelectedValue, getSelectedValues, getSelectOptions, getSpeed, getTable, getText, getTitle, getValue, getWhetherThisFrameMatchFrameExpression, getWhetherThisWindowMatchWindowExpression, getXpathCount, goBack, highlight, ignoreAttributesWithoutValue, isAlertPresent, isChecked, isConfirmationPresent, isCookiePresent, isEditable, isElementPresent, isOrdered, isPromptPresent, isSomethingSelected, isTextPresent, isVisible, keyDown, keyDownNative, keyPressNative, keyUp, keyUpNative, metaKeyDown, metaKeyUp, mouseDown, mouseDownAt, mouseDownRight, mouseDownRightAt, mouseMove, mouseMoveAt, mouseOut, mouseOver, mouseUp, mouseUpAt, mouseUpRight, mouseUpRightAt, openWindow, refresh, removeAllSelections, removeScript, removeSelection, retrieveLastRemoteControlLogs, rollup, runScript, select, selectFrame, selectPopUp, selectWindow, setBrowserLogLevel, setContext, setCursorPosition, setExtensionJs, setMouseSpeed, setSpeed, setTimeout, shiftKeyDown, shiftKeyUp, showContextualBanner, showContextualBanner, shutDownSeleniumServer, start, start, stop, submit, type, typeKeys, uncheck, useXpathLibrary, waitForCondition, waitForFrameToLoad, waitForPageToLoad, waitForPopUp, windowFocus, windowMaximize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PAGE_LOAD_WAIT

protected final long PAGE_LOAD_WAIT
The maximum page load wait time used by Selenium. This value is set with SeleniumConfiguration.getPageLoadWait().


ACTION_WAIT

protected final long ACTION_WAIT
The maximum wait time for actions that don't require page loads. This value is set with SeleniumConfiguration.getActionWait().

Constructor Detail

SeleniumClient

public SeleniumClient(SeleniumConfiguration config)
Method Detail

getBrowser

public SeleniumClient.Browser getBrowser()

open

public void open(String url)
Unlike DefaultSelenium.open(java.lang.String), this opens the provided URL relative to the application context path. It also waits for the page to load -- a maximum of PAGE_LOAD_WAIT before returning.

Specified by:
open in interface com.thoughtworks.selenium.Selenium
Overrides:
open in class com.thoughtworks.selenium.DefaultSelenium

openNoWait

public void openNoWait(String url)
Wait for page to load doesn't work the case of non-HTML based resources (like images). So sometimes you really do want to open a url without waiting.

Parameters:
url -

open

public void open(String url,
                 long timeoutMillis)
Opens the given URL and waits a maximum of timeoutMillis for the page to load completely.


waitForPageToLoad

public void waitForPageToLoad(long timeoutMillis)
Overloads DefaultSelenium.waitForPageToLoad(String) to take in a long.


waitForPageToLoad

public void waitForPageToLoad()
Waits for the page to load with the default timeout configured in SeleniumConfiguration.


waitForCondition

public void waitForCondition(String javascript)
Executes the given Javascript in the context of the text page and waits for it to evaluate to true for a maximum of ACTION_WAIT milliseconds.

See Also:
if you would like to specify your own timeout.

waitForCondition

public void waitForCondition(String javascript,
                             long timeoutMillis)
Executes the given Javascript in the context of the text page and waits for it to evaluate to true for a maximum of timeoutMillis.


click

public void click(String locator,
                  boolean waitForPageToLoad)
Click the element with the given locator and optionally wait for the page to load, using PAGE_LOAD_WAIT.

Parameters:
locator - the element to click, specified using Selenium selector syntax
waitForPageToLoad - whether to wait for the page to reload. Don't use this unless the page is completely reloaded.
See Also:
if you would like to specify your own timeout.

submit

public void submit(String form,
                   boolean waitForPageToLoad)
Submit the named form locator and optionally wait for the page to load, using PAGE_LOAD_WAIT.

Parameters:
form - to click, specified using Selenium selector syntax
waitForPageToLoad - whether to wait for the page to reload. Don't use this unless the page is completely reloaded.
See Also:
if you would like to specify your own timeout.

click

public void click(String locator,
                  long timeoutMillis)
Click the element with the given locator and wait for the page to load, for a maximum of timeoutMillis.

Do not use this method if the page does not reload.

Parameters:
locator - the element to click, specified using Selenium selector syntax
timeoutMillis - the maximum number of milliseconds to wait for the page to load. Polling takes place more frequently.
See Also:
if you would like to use the default timeout

submit

public void submit(String form,
                   long timeoutMillis)
Submit the given form and wait for the page to load, for a maximum of timeoutMillis.

Do not use this method if the page does not reload.

Parameters:
form - the form to submit
timeoutMillis - the maximum number of milliseconds to wait for the page to load. Polling takes place more frequently.
See Also:
if you would like to use the default timeout

keyPress

public void keyPress(String locator,
                     String key)
This will type into a field by sending key down / key press / key up events.

Specified by:
keyPress in interface com.thoughtworks.selenium.Selenium
Overrides:
keyPress in class com.thoughtworks.selenium.DefaultSelenium
Parameters:
locator - Uses the Selenium locator syntax
key - The key to be pressed

typeWithFullKeyEvents

public void typeWithFullKeyEvents(String locator,
                                  String string,
                                  boolean reset)
This will type into a field by first blanking it out and then sending key down / key press / key up events.

Parameters:
locator - the Selenium locator
string - the string to type
reset - Should the field be reset first?

typeWithFullKeyEvents

public void typeWithFullKeyEvents(String locator,
                                  String string)
This will type into a field by first blanking it out and then sending key down / key press / key up events. This really only calls typeWithFullKeyEvents(String,String,boolean))}

Parameters:
locator - - the usual Selenium locator
string - the string to type into a field

selectOption

public void selectOption(String selectName,
                         String label)

check

public void check(String name,
                  String value)
Checks a checkbox given a name and value.


clickLinkWithText

public void clickLinkWithText(String text,
                              boolean waitForPageToLoad)

clickButton

public void clickButton(String buttonText,
                        boolean waitForPageToLoad)

clickButtonWithName

public void clickButtonWithName(String buttonName,
                                boolean waitForPageToLoad)

clickElementWithTitle

public void clickElementWithTitle(String title)

clickElementWithClass

public void clickElementWithClass(String className)

clickElementWithCss

public void clickElementWithCss(String cssSelector)

clickElementWithXpath

public void clickElementWithXpath(String xpath)

typeInElementWithName

public void typeInElementWithName(String elementName,
                                  String text)

typeInElementWithCss

public void typeInElementWithCss(String cssSelector,
                                 String text)

start

public void start()
Specified by:
start in interface com.thoughtworks.selenium.Selenium
Overrides:
start in class com.thoughtworks.selenium.DefaultSelenium


Copyright © 2009 Atlassian Pty Ltd. All Rights Reserved.