Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 2.72 KB

CustomisingSelenese.md

File metadata and controls

24 lines (17 loc) · 2.72 KB
layout
default

{% include links %}

  • TOC {:toc}

Identifying Javascript implementation of Selenese commands

Do not search for implementation functions of Selenese action [commands][command] case-sensitively. Actions (i.e. ones with primary forms that don't start with get neither with is and that are not like isXyzPresent - as per table at {{navAutoGeneratedSeleneseCommands}}) are defined in Javascript functions whose names start with do. E.g. command xyz is implemented in function doXyz.

For locating the source code of those Javascript functions see JavascriptSpecial > Locating a Javascript function in sources.

Defining functions in Selenium Core

This is for files normally loaded into [Core scope] (via Bootstrap or [Extension Sequencer], which use JavascriptComplex > mozIJSSubScriptLoader). (That's not for {{navJavascriptCodeModules}}.)

You can define functions for [Core scope] in either way mentioned at JavascriptEssential > Defining Javascript functions. However, if you use the classic way, do that only in strict mode. Otherwise the function will be in the Selenium global scope (i.e. outside of [Core scope]) - then you need to see {{navCoreExtensionsLoadedTwice}}.

Special rules for custom Selenese commands

Names of action commands

Primary Selenese action commands are implemented by Javascript functions whose names start with do. (E.g. action abcDef is implemented by function doAbcDef.) Don't have primary Selenese action names themselves in form getXyz, isXyz or isXyzPresent (i.e. implemented by functions doGetXyz, doIsXyz or doIsXyzPresent, respectively), unless you have a very good reason. Such names would imply that the command is a getter or checker rather than an action. They would suggest that there are other auto-generated Selenese commands for them (assertXyz etc., as per {{navAutoGeneratedSeleneseCommands}}), but those wouldn't exist.

Getter commands

Don't define the second parameter (usually called value) for Selenese getter commands. See Documentation and handling of Selenium.prototype.getXYZ functions - Se IDE.