Tuesday, 5 August 2014

Commands In Selenium

Commands

The Selenium API defines dozens of commands that can be categorized into the following:
  • Actions
  • Accessors
  • Assertions

 Actions

  • Actions are commands that change the state of the application like clicking links or buttons, select an option in a <select> or type a character sequence in a given textbox.
  • Actions are available in different flavors. For instance, click(locator) will trigger a click on an element locator but you can also find:
    • clickAndWait(locator) command which will trigger a click and stop the test until the browser has finished loading a new page.
    • clickAt(locator, offset) command that also triggers a click but takes another argument: a X and Y tuple that offset the actual clicking location by X and Y pixels.
    • A combination of the above : clickAtAndWait(locator,offset) that combines the specification of an offset for the click location and waits for a new page to load.
    test with actions
    ?
    type id=search Donuts near my home
    ?
    • type modifies the state of the application (it modifies a test field) and so is considered as an action

    Accessors

    • Accessors inspect the state of the application and store values in variables.
    • For instance, storeCookies(variableName) stores all the cookies in use in the current page in the variable variableName.
    • To use stored variables, the syntax is ${variablename} (or storedVars['variableName'] if in a JavaScript context):
      Test with variables
      store my_search_string searchString
      ?
      type id=search ${searchString}
      ?
      and if in a JavaScript code section:
      if (storedVars['variableName'] == '') {
        ...
      }

     Assertions

    • Assertions are also able to inspect the current page but:
      • They are made to return a boolean value
      • This boolean represents the conformity of the element to a desired pattern
      • Usually, the pattern represents the state of an element.
    • Assertions come into 3 flavors:
      • assert : if assertion fails, test is aborted and marked as failed : assertTitle(pattern) will fail if the title of the page doesnot correspond to the pattern argument.
      • verify : if a verification fails, the test doesnot stop but a trace will be printed in the log.
      • waitFor : these commands pause the test until a condition is satisfied or a timeout is reached.

1 comment: