Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Actions

Keyboard &  Mouse interaction

Verification and Assertion

Waits

Scenario Flow

JS Execution

Stored Variables

Custom (ASM Specific) Commands

open

keyDown

assertElementPresent

waitForVisible

gotoIf

fireEvent

storeTitle

setPageBreak

clickAndWait

keyDownAndWait

assertTitle

waitForValue

goto

runScript

storeXpathCount

insertPageBreak

clickAtAndWait

keyUp

assertLocation

waitForAttribute

label

runScriptAndWait

storeCssCount

takeScreenshot

clickAndNotWait

keyUpAndWait

assertVisible

waitForNotText

close

executeScript

storeValue

startRecording

click

keyPress

assertElementNotPresent

waitForNotValue

pause

getEval

storeText

clearRecording

clickAt

keyPressAndWait

assertNotVisible

waitForNotAttribute

setSpeed

storeLocation

stopRecording

doubleClick

mouseOver

assertAttribute

waitForText

setTimeout

storeExpression

getDictionary

doubleClickAt

assertNotAttribute

waitForTextPresent

echo

storeEval

setLocation

doubleClickAndWait

assertValue

waitForTextNotPresent

storeAttribute

doubleClickAtAndWait

assertNotValue

waitForElementPresent

storeElementPresent

clickInvisible

assertText

waitForEditable

store

clickInvisibleAndWait

assertTextNotPresent

waitForElementNotPresent

setLocation

type

assertTextPresent

waitForNotVisible

sendKeys

assertExpression

waitForTitle

typeKeys

assertNextConfirmation

waitForLocation

select

assertNextAlert

waitForAlert

selectAndWait

assertAlert

waitForConfirmation

selectFrame

assertConfirmation

waitForPageToLoad

selectWindow

assertEval

submit

verifyTitle

createCookie

verifyLocation

deleteCookie

verifyElementPresent

verifyVisible

verifyElementNotPresent

verifyNotVisible

verifyAttribute

verifyNotAttribute

verifyValue

verifyNotValue

verifyText

verifyTextNotPresent

verifyTextPresent

verifyExpression

...

ASM supports several commands which are not utilized in native Selenium IDE: insertPageBreak, takeScreenshot, and getDictionary.

setLocation

The setLocation command may be utilized in order to mimic a certain location from within the browser. To use, specify “setLocation” as the command and specify the desired coordinates as the Target:

...

Accepted syntax for Target coordinates includes:

  • latitude: 59.3259965, longitude: 18.0057939

  • 59.3259965, 18.0057939

insertPageBreak

ASM scenarios support a custom command called insertPageBreak. This command creates a new Page Break page break that separates different pages (which typically consist of multiple URL calls) from each other. The command expects one argument , the name/title of the page break, - a name - which will be shown on the Result Details page in ASM. Page breaks can be entered manually into scripts or automatically generated when recording web sessions.

For example, If the login portion of a web page sequence takes place over two or three HTML pages, the manual Page break Break could organize the set of HTML pages into a single group before the next logical page navigation - another Page Break. insertPageBreak is typically only necessary if you need to set a custom title or if requests which are triggered as a result of Manual page breaks are helpful when requests triggered by executing multiple different commands all end up as part of the same step, and you wish there is a need to split these requests into multiple steps.

It is possible to disable automatic insertion of page breaks via the Edit Check settings. See https://apica-kb.atlassian.net/wiki/spaces/ASMDOCS/pages/2134212678/Understanding+Browser+Check+Results#Page-Breaks-in-a-Browser-Check-Result for more information on page breaks.

takeScreenshot

The command takeScreenshot takes a screenshot that will be visible in the Check Details. The command will insert an additional screenshot onto the page in addition to whatever screenshots have been added in the Edit Check settings. This command is helpful when troubleshooting scripts as it gives a snapshot of what exactly happens at a particular step.

getDictionary

See Storing and Retrieving Information Using the ASM Dictionary.

Limitations of Selenium IDE within ASM Scenarios

...

Command

Target

Value

keyPressAndWait

id=gh-ac

\13

The “value” of the command corresponds to the ASCII “Oct” value of the key you are trying to press; see https://www.asciitable.com/ for a full list. Some examples of values which correspond to keys include the following:

\10 corresponds to “backspace”

\9 corresponds to “tab”

JavaScript Execution

Selenium WebDriver’s JavascriptExecutor will wrap all JavaScript and evaluate it as an anonymous expression. Therefore, the “return” keyword must be used when executing JavaScript within the “Target” field in an ASM scenario. For example, the command browserbot.getCurrentWindow().document.title in Selenium becomes return document.title; in an ASM Scenario.

If your Selenium IDE looks like the following:

...

Command

...

Target

...

Value

...

assertEval

for the following commands:

GotoIf

GetEval

StoreEval

StoreExpression

The following commands do not require the use of “return”:

RunScript

RunScriptAndWait

For example, if you are trying to determine whether the result of the expression ${stored_var} > 0

...

true

Add a “return” keyword to the target so it looks like is true, use the following code:

Command

Target

Value

assertEval

return ${stored_var} > 0

true

The following commands result in javascript evaluation or expect a javascript snippet as an argument. Therefore, they also require the use of “return”:

GotoIf

RunScript

RunScriptAndWait

GetEval

StoreEval

StoreExpressionscreenshot (supplemental text provided) shows an example in which JavaScript is being used to execute another check upon completion of the current scenario. Basically, the check kicks off another check when it’s finished.

Within the scenario:

...

Run execution log:

...

Javascript snippet:

Code Block
var xhr = new XMLHttpRequest();

xhr.open('POST', 'https://api-asm.apica.io/v3/checks/3393731/job?auth_ticket=${auth_ticket}', true);

xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');

xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { 
        if (xhr.status === 200) { 
            var response = JSON.parse(xhr.responseText);
            console.log('Success:', response); 
        } else {
            console.error('Error:', xhr.statusText);
        }
    }
};

xhr.send();

return "check ID 3393731 has been executed!"

The “runScript” or “runScriptAndWait” commands could also be used with the above Javascript if the “return” statement is omitted.

Note

Javascript comments are NOT allowed in the body of a Javascript snippet!

Type & sendKeys

Even though the type command works in most cases, Apica strongly recommends using sendKeys instead of type. The type command edits the HTML format of the code, while the sendKeys command attempts to simulate actual typing and is therefore able to trigger javascript code in fields.

...