Selenium Commands and Results

The Alternative To HP QuickTest Professional(tm) (QTP)

Many testers, developers, and IT managers ask Appvance to compare HP QuickTest Professional (QTP) to AIQ with Selenium IDE. Appvance provides app performance test automation solutions for organizations needing to improve the reliability and reduce service interruptions in their Web applications, Rich Internet Applications (RIA, using Ajax, Flex, Flash,) Web services and Business Process Management services. Appvance is the app performance expert for dozens of tools. This comparison document helps organizations look for an inexpensive solution that works with their latest applications. Here is a high-level summary:

Category

HP QTP 10

Appvance Enterprise 7.0.1 with Selenium 1.0

Technical experience required to be successful

Web 1.0 Record/Playback

Rich Internet Application (RIA, Using Ajax) Support

Drill down to root cause of functional issues/crashes

Record Tests

MS IE 9,10

Firefox 3.6 or later

Playback Tests

MS IE 9,10

MS IE 9,10 Firefox 3.6 or later, Safari, Chrome

Data-driven Testing

Reusable Test Components

Agile software development lifecycle (SDLC) support

Add-ons available

Language Support

VBScript

Selenese, Java, Ruby, Perl, PHP, Python, C#, Groovy

Functional Testing, Load Testing, Service Monitoring from one test script

Run tests in the Cloud, in your QA lab, or both

Selenium Command Language Reference (Selenese)

Selenium implements a domain-specific language (DSL) named Selenese.

Appvance implements the SeleniumHtmlUnit object library in AIQ to operate Selenese commands in HtmlUnit

Results Analysis and Reports for Root Cause Analysis and Mitigation

AIQ records the time it takes to operate each step in a Selenium test and the overall time to process the test use case (transaction.) AQI's Results Analysis Engine summarizes the transaction logs into a set of charts and reports.

Read Appvance Results Analysis

Scaling Selenium Tests in the Grid and Cloud

AIQ is a distributed test environment. AIQ runs Selenium tests on a Grid of your test equipment, in a Cloud Computing environment, or both. Read The Test Deployment Guide

Continuous Integration and Selenium

AIQ is an ideal environment for automating Selenium test operations from a Continuous Integration environment. The CI platform starts a TestScenario test and AIQ automatically provisions and deploys tests to the available TestNodes in your own Grid or in a Cloud Testing environment.Read The Test Deployment Guide

Selenium Command Reference

The following table summarizes the list of implemented and unimplemented Selenese commands in SeleniumHtmlUnit.

Command

Wait Command

Target

Value

Selenium Control

setTimeout

milliseconds

setMouseSpeed

number of pixels

setMouseSpeedAndWait

setSpeed

milliseconds

setSpeedAndWait

addLocationStrategy

strategyName

functionDef

addLocationStrategyandWait

allowNativeXpath

boolean

allowNativeXpathAndWait

ignoreAttributesWithoutValue

boolean

ignoreAttributesWithoutValueAndWait

assignId

locator

identifier

assignIdAndWait

captureEntirePageScreenShot

filename, kwargs

captureEntirePageScreenShotAndWait

echo

message

pause

milliseconds

runScript

javascript

runScriptAndWait

waitForCondition

javascript

milliseconds

waitForPageToLoad

milliseconds

waitForPopUp

windowID

milliseconds

fireEvent

locator

eventName

fireEventAndWait

Browser Operations

open

url

openAndWait

openWindow

url

windowID

openWindowAndWait

goBack

goBackAndWait

refresh

refreshAndWait

close

deleteCookie

name

path

deleteCookieandWait

deleteAllVisibleCookies

deleteAllVisibleCookiesAndWait

setBrowserLogLevel

logLevel

setBrowserLogLevelAndWait

Cookie Operations

createCookie

nameValuePair

optionString

createCookieAndWait

deleteCookie

name

optionString

deleteCookieAndWait

deleteAllVisibleCookies

deleteAllVisibleCookiesAndWait

Popup Box Operations

answerOnNextPrompt

answer

answerOnNextPromptAndWait

chooseCancelOnNextConfirmation

chooseCancelOnNextConfirmationAndWait

chooseOkOnNextConfirmation

chooseOkOnNextConfirmationAndWait

Checkbox & Radio Buttons

check

locator

checkAndWait

uncheck

locator

uncheckAndWait

Lists & Dropdowns

addSelection

locator

optionLocator

addSelectionAndWait

removeSelection

removeSelectionAndWait

locator

optionLocator

removeAllSelections

removeAllSelectionsAndWait

locator

Edit Fields

type

locator

value

typeAndWait

typeKeys

locator

value

typeKeysAndWait

setCursorPosition

locator

position

setCursorPositionAndWait

Keyboard Operations

keyDown

locator

keySequence

keyDownAndWait

keyPress

locator

keySequence

keyPressAndWait

keyUp

locator

keySequence

keyUpAndWait

altKeyDown

altKeyDownAndWait

altKeyUp

altKeyUpAndWait

controlKeyDown

controlKeyDownAndWait

controlKeyUp

controlKeyUpAndWait

metaKeyDown

metaKeyDownAndWait

metaKeyUp

metaKeyUpAndWait

shiftKeyDown

shiftKeyDownAndWait

shiftKeyUp

shiftKeyUpAndWait

Mouse Operations

click

locator

clickAndWait

clickAt

locator

coordString

clickAtAndWait

doubleClick

locator

doubleClickAndWait

doubleClickAt

locator

coordString

doubleClickAtAndWait

contextMenu

locator

contextMenuAndWait

contextMenuAt

locator

coordString

contextMenuAtAndWait

mouseDown

locator

mouseDownAndWait

mouseDownA

locator

coordString

mouseDownAtAndWait

mouseMove

locator

mouseMoveAndWait

mouseMoveAt

locator

coordString

mouseMoveAtAndWait

mouseOut

locator

mouseOutAndWait

mouseOver

locator

coordString

mouseOverAndWait

mouseUp

locator

mouseUpAndWait

mouseUpAt

locator

coordString

mouseUpAtAndWait

dragAndDrop

locator

movementString

dragAndDropAndWait

dragAndDropToObject

sourceLocator

destLocator

dragAndDropToObjectAndWait

Form Operations

submit

formLocator

submitAndWait

Windows/Element Selection

select

locator

optionLocator

select AndWait

selectFrame

locator

selectWindow

windowID

focus

locator

focusAndWait

highlight

locator

highlightAndWait

windowFocus

windowFocus AndWait

windowMaximize

windowMaximizeAndWait

Selenium Accessors

store

expression

variableName

storeAlert

variableName

assertAlert

pattern

assertNotAlert

pattern

verifyAlert

pattern

verifyNotAlert

pattern

waitForAlert

pattern

waitForNotAlert

pattern

storeAlertPresent

variableName

assertAlertPresent

pattern

assertNotAlert Present

pattern

verifyAlertPresent

pattern

verifyNotAlertPresent

pattern

waitForAlertPresent

pattern

waitForNotAlertPresent

pattern

storeAllButtons

variableName

assertAllButtons

pattern

assertNotAllButtons

pattern

verifyAllButtons

pattern

verifyNotAllButtons

pattern

waitForAllButtons

pattern

waitForNotAllButtons

pattern

storeAllFields

variableName

assertAllFields

pattern

assertNotAllFields

pattern

verifyAllFields

pattern

verifyNotAllFields

pattern

waitForAllFields

pattern

waitForNotAllFields

pattern

storeAllLinks

variableName

assertAllLinks

pattern

assertNotAllLinks

pattern

verifyAllLinks

pattern

verifyNotAllLinks

pattern

waitForAllLinks

pattern

waitForNotAllLinks

pattern

storeAllWindowIds

variableName

assertAllWindowIds

pattern

assertNotAllWindowIds

pattern

verifyAllWindowIds

pattern

verifyNotAllWindowIds

pattern

waitForAllWindowIds

pattern

waitForNotAllWindowIds

pattern

storeAllWindowNames

variableName

assertAllWindowNames

pattern

assertNotAllWindowNames

pattern

verifyAllWindowNames

pattern

verifyNotAllWindowNames

pattern

waitForAllWindowNames

pattern

waitForNotAllWindowNames

pattern

storeAllWindowTitles

variableName

assertAllWindowTitles

pattern

assertNotAllWindowTitles

pattern

verifyAllWindowTitles

pattern

verifyNotAllWindowTitles

pattern

waitForAllWindowTitles

pattern

waitForNotAllWindowTitles

pattern

storeAttribute

attributeLocator

variableName

assertAttribute

attributeLocator

pattern

assertNotAttribute

attributeLocator

pattern

verifyAttribute

attributeLocator

pattern

verifyNotAttribute

attributeLocator

pattern

waitForAttribute

attributeLocator

pattern

waitForNotAttribute

attributeLocator

pattern

storeAttributeFromAllWindows

attributeName

variableName

assertAttributeFromAllWindows

attributeName

pattern

assertNotAttributeFromAllWindows

attributeName

pattern

verifyAttributeFromAllWindows

attributeName

pattern

verifyNotAttributeFromAllWindows

attributeName

pattern

waitForAttributeFromAllWindows

attributeName

pattern

waitForNotAttributeFromAllWindows

attributeName

pattern

storeBodyText

variableName

assertBodyText

pattern

assertNotBodyText

pattern

verifyBodyText

pattern

verifyNotBodyText

pattern

waitForBodyText

pattern

waitForNotBodyText

pattern

storeChecked

variableName

assertChecked

pattern

assertNotChecked

pattern

verifyChecked

pattern

verifyNotChecked

pattern

waitForChecked

pattern

Unimplemented Selenese Commands

SeleniumHTMLUnit is an AIQ object library that translates Selenese commands on-to-fly and runs the commands using the HTMLUnit headless browser. Some Selenese commands do not make sense in an AIQ context. For example, AIQ provides cookie management commands of its own. The following is a list of Selenese commands not implemented in SeleniumHTMLUnit. AIQ throws a Not Implemented exception when encountering one of the following commands:

NotImplemented commands

altKeyDown

getAlert

getTable

mouseMoveAt

altKeyUp

getAllButtons

getWhetherThisFrameMatchFrameExpression

mouseUpAt

answerOnNextPrompt

getAllFields

getWhetherThisWindowMatchWindowExpression

openWindow

captureScreenshot

getAllLinks

getWhetherThisWindowMatchWindowExpression

refresh

chooseCancelOnNextConfirmation

getAllWindowIds

getXpathCount

setBrowserLogLevel

chooseOkOnNextConfirmation

getAllWindowNames

highlight

setContext

clickAt

getAllWindowTitles

isAlertPresent

setCursorPosition

close

getAttributeFromAllWindows

isConfirmationPresent

setMouseSpeed

controlKeyDown

getBodyText

isEditable

shiftKeyDown

controlKeyUp

getConfirmation

isOrdered

shiftKeyUp

controlKeyUp

getCookie

isPromptPresent

start

createCookie

getCursorPosition

keyDown

submit

deleteCookie

getElementHeight

keyPress

typeKeys

doubleClick

getElementIndex

keyUp

waitForFrameToLoad

doubleClickAt

getElementPositionLeft

metaKeyDown

waitForPopUp

dragAndDrop

getElementPositionTop

metaKeyUp

windowFocus

dragAndDropToObject

getElementWidth

mouseDownAt

windowMaximize

dragdrop

getExpression

mouseMove

fireEvent

getLocation

getMouseSpeed

getPrompt