Welcome to yet another interesting post on Selenium IDE. Today, let us unwrap the mysteries of the commands that we see in the test script pane upon recording a test scenario. Sample is as follows,
Big Word Alert! Selenese – It is nothing but a set of selenium commands. A sequence of these commands forms a test script. Each line is a Selenium command which has three parts viz., Command, Target and Value.
Command – What to do/What action needs to be performed
Target – Where (web element) the action has to take place
Value – Which data has to be passed to the target
Some commands do not always require a Target and Value. Example, “close” command is used to close a window. Whereas “click” command requires a target and “type” command expects both target and value.
Selenium commands come in three different flavors: Actions, Accessors and Assertions.
Actions:
These commands manipulate the state of the application by interacting with the web elements directly. If an Action fails or an error occurs, then the current test execution stops. The following commands in that test script will not be executed.
Let us see some examples to stick this to our brain,
Command | Description |
type ( locator,value ) | Sets the value of an input field, as though you typed it in. |
click ( locator ) | Clicks on a link, button, checkbox or radio button |
Close() | Simulates the user clicking the “close” button in the titlebar of a popup window or tab |
echo ( message ) | Prints the specified message into the third table cell in your Selenese tables. Useful for debugging. |
focus ( locator ) | Move the focus to the specified element; for example, if the element is an input field, move the cursor to that field. |
open ( url ) | Opens an URL in the test frame. This accepts both relative and absolute URLs. |
setTimeout ( timeout ) | Specifies the amount of time that Selenium will wait for actions to complete. |
Most of these actions are called with a suffix, “AndWait”, e.g. “clickAndWait”. This suffix makes sure that Selenium waits for the new page or element to load.
Accessors:
These commands are used to examine the state of the application. These let us store the results in user defined variables which can be used for the purpose of assertions. They do not interact directly with the elements of the page.
Example, “storeAllLinks” will read the IDs of all links on the page and store them in a user defined variable. If the result has multiple values, then the variable will be of array type.
Assertions:
These are similar to accessors as they also do not interact directly with the web elements. Assertions are mainly used to verify if the application state confirms to what is expected.
Assertions come in three modes,
“assert” – When an “assert” fails, test execution is stopped immediately. Rest of the test script is not executed.
“verify” – when a “verify” fails, Selenium IDE logs the failure in red color and the execution continues.
“waitFor” – waits for a certain condition to become true before proceeding to the next command. By default, the timeout value is set to 30 seconds. This can be changed to the desired value. Upon failure, the test execution continues with the next steps. Failure is logged in Selenium IDE logs pane.
Command | Description |
verifyTitle/assertTitle | verifies an expected page title |
verifyElementPresent | verifies an expected UI element, as defined by its HTML tag, is present on the page |
verifyText | verifies expected text and its corresponding HTML tag are present on the page |
verifyTable | verifies a table’s expected contents |
waitForPageToLoad | pauses execution until an expected new page loads. Called automatically when clickAndWait is used |
waitForElementPresent | pauses execution until an expected UI element, as defined by its HTML tag, is present on the page |
More on “assert” and “verify” in upcoming blogs! Keep practicing different scenarios until then. A complete reference on these commands can be found in the official website, here.
See you again in another post. Have a great day!