Do not search for implementation functions of Selenese action commands 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 ClassicSelenese > Auto-generated Selenese commands) 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.
This is for files normally loaded into Core scope (via Bootstrap or Extension Sequencer, which use JavascriptComplex > mozIJSSubScriptLoader). (That’s not for JavascriptComplex > Javascript code modules.)
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 ExtensionSequencer > Core extensions loaded twice.
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 ClassicSelenese > Auto-generated Selenese commands), but those wouldn’t exist.
Don’t define the second parameter (usually called value
) for Selenese getter commands. See Documentation and handling of Selenium.prototype.getXYZ functions - Se IDE.