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 |