Skip to content

Commit aa4ae9e

Browse files
Defining links and using spaces in links to AutoCheck|ExitConfirmationChecker|ClipboardAndIndent|DBObjects|ExtensionSequencer|SelBlocksGlobal
1 parent 6496bb1 commit aa4ae9e

22 files changed

+59
-51
lines changed

AddOnsThirdParty.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ If you develop [Core extensions][core extension] or SeLite frameworks (as per [G
2626
# Incompatible add-ons #
2727
Don't use
2828

29-
* original SelBlocks - it doesn't call Selenese functions across [cases][case]. Use [SelBlocksGlobal](SelBlocksGlobal) instead;
30-
* Flow Control, Sideflow, GoTo - they are incompatible with [SelBlocksGlobal](SelBlocksGlobal) (and also with SelBlocks).
29+
* original SelBlocks - it doesn't call Selenese functions across [cases][case]. Use [SelBlocks Global] instead;
30+
* Flow Control, Sideflow, GoTo - they are incompatible with [SelBlocks Global] (and also with SelBlocks).
3131

3232
# Other versions of Selenium IDE #
3333
In order to use an old version of Selenium IDE

AutoCheck.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ layout: default
66
{:toc}
77

88
# Automatic checks #
9-
[AutoCheck](https://addons.mozilla.org/en-US/firefox/addon/selite-auto-check/versions/) ([Components](Components) > [Auto Check](Components#autocheck)) validates the current page after every successful Selenese [command]. (That is not necessarily on every page reload - e.g. it may skip pages that redirect.) You can use some standard checks (with optional configuration) or create custom ones.
9+
[Auto Check](https://addons.mozilla.org/en-US/firefox/addon/selite-auto-check/versions/) ([Components](Components) > [Auto Check](Components#autocheck)) validates the current page after every successful Selenese [command]. (That is not necessarily on every page reload - e.g. it may skip pages that redirect.) You can use some standard checks (with optional configuration) or create custom ones.
1010

1111
## Negative checks ##
1212
Negative checks validate that given selector(s) don't match any elements on the page. That's useful if your web server, framework or programming language report errors/warnings/notices in some kind of fixed format.
@@ -22,12 +22,12 @@ Standard PHP detection class supports this (which works with [Xdebug](http://xde
2222
Positive checks validate that the page contains elements that match given selector(s). However, it can't validate that HTML of a page conforms to HTML standard. That's because Firefox automatically fixes incorrect HTML and it adds missing necessary elements.
2323

2424
## Configuration ##
25-
Configure these checks at {{chromeUrl}} _chrome://selite-settings/content/tree.xul?module=extensions.selite-settings.common_. In order to use [AutoCheck](AutoCheck) you must select at least `autoCheckDetector` or `autoCheckDetectorCustom`. Other fields are optional.
25+
Configure these checks at {{chromeUrl}} _chrome://selite-settings/content/tree.xul?module=extensions.selite-settings.common_. In order to use Auto Check you must select at least `autoCheckDetector` or `autoCheckDetectorCustom`. Other fields are optional.
2626

2727
* `autoCheckAssert` - whether an occurrence should trigger an assert failure; by default it triggers a validation failure rather than an assert failure
2828
* `autoCheckDetector` - choose a standard detection class to use; or set it to `null` or `undefined` if you use a custom class
2929
* `autoCheckDetectorCustom` - enter a name of the custom detection class (which you must load into [Core scope] e.g. via [Bootstrap](Bootstrap)); used only if `autoCheckDetector` is `null` or `undefined`
30-
* `autoCheckIgnored` - the format of entries depends on the detection class. [AutoCheck](AutoCheck) reports failures unless they match an `autoCheckIgnored` entry. Use `autoCheckIgnored` to match already reported bugs (so that they don't get reported again).
30+
* `autoCheckIgnored` - the format of entries depends on the detection class. Auto Check reports failures unless they match an `autoCheckIgnored` entry. Use `autoCheckIgnored` to match already reported bugs (so that they don't get reported again).
3131
* for PHP enter XPath logical conditions (not whole XPath expressions). Those would match either PHP warning/notice/error message (description) or a leaf file path (where the failure occurred). The conditions can refer to that text node by '.' (and they must not refer to parent/sibling nodes). Examples are
3232
* `contains(., 'Undefined variable')`
3333
* `contains(., 'dbadmin.inc')`

Bootstrap.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ If you introduce or modify any Selenese [commands][command] - i.e. <code>Seleniu
4949
If you remove a filename from `bootstrapCoreExtensions` (or you switch to a different default [set] or a [suite] with a different [set] associated with it), Bootstrap can't 'unload' a file that it has loaded already. If you change that option later and you add the filename back, it won't re-run the file, unless its timestamp has changed.
5050

5151
## Dependencies between files ##
52-
Bootstrap initiates extensions after any [Core extensions][core extension] loaded as Firefox add-ons (whether they use [ExtensionSequencer](ExtensionSequencer) or not).
52+
Bootstrap initiates extensions after any [Core extensions][core extension] loaded as Firefox add-ons (whether they use [Extension Sequencer] or not).
5353

54-
If you have multiple files registered with Bootstrap through a {{valuesManifest}}, they get loaded in that order. However, if you register multiple files through profile-based configuration (as per [SettingsInterface](SettingsInterface)), their order is not guaranteed. Then you need more structure for that: package them as Firefox extensions and load them through [ExtensionSequencer](ExtensionSequencer).
54+
If you have multiple files registered with Bootstrap through a {{valuesManifest}}, they get loaded in that order. However, if you register multiple files through profile-based configuration (as per [SettingsInterface](SettingsInterface)), their order is not guaranteed. Then you need more structure for that: package them as Firefox extensions and load them through [Extension Sequencer].
5555

5656
On change, Bootstrap re-loads all registered files, not just the one(s) updated. That allows dependant files (that were registered with Bootstrap through a {{valuesManifest}}) to inject any hooks in the expected order.

ClassicSelenese.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Find a basic example at Selenium Documentation > [Test Design Considerations](ht
106106
# Variables
107107

108108
## Stored variables
109-
Some Selenese [commands][command] store variables, to be used by later steps. [SelBlocksGlobal](SelBlocksGlobal) manages scope of such variables. When inside a [SelBlocksGlobal](SelBlocksGlobal) function, you can only use stored variables set in that function (or passed as parameters to it). The local scope also means: if you set a stored variable within a Selenese function and the same stored variable exists in the caller scope (that invoked the current function), the variable in the caller scope won't be affected.
109+
Some Selenese [commands][command] store variables, to be used by later steps. [SelBlocks Global] manages scope of such variables. When inside a [SelBlocks Global] function, you can only use stored variables set in that function (or passed as parameters to it). The local scope also means: if you set a stored variable within a Selenese function and the same stored variable exists in the caller scope (that invoked the current function), the variable in the caller scope won't be affected.
110110

111111
Parameters of Selenese commands can access stored variables as `${name-of-the-variable}`. Those get replaced by the value of the variable. However, if a command processes the parameter as a Javascript expression (e.g. `storeEval, getEval` or when using [EnhancedSelenese](EnhancedSelenese)), and if the variable contains an array/object or a non-numeric string (possibly with an apostrophe or quotation mark), then replacement of `${name-of-the-variable}` won't work robustly. For those cases use `$name-of-the-variable` (or `storedVars.name-of-the-variable` or `storedVars['name-of-the-variable']`). See also [EnhancedSelenese](EnhancedSelenese).
112112

Components.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ layout: default
99
# Dependancies
1010
Install [Selenium IDE](https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/). Unless you're choosing specific components, also get [Favorites (Selenium IDE)](https://addons.mozilla.org/en-US/firefox/addon/favorites-selenium-ide/).
1111

12-
Don't install SeLite together with SelBlocks, Flow Control, GoTo, Sideflow or Implicit Wait. (Those extensions are incompatible with [SelBlocksGlobal](SelBlocksGlobal)).
12+
Don't install SeLite together with SelBlocks, Flow Control, GoTo, Sideflow or Implicit Wait. (Those extensions are incompatible with [SelBlocks Global]).
1313

1414
# Overall package
1515
For the easiest download, get an [overall package](https://addons.mozilla.org/en-US/firefox/addon/selite).

ComponentsDependants.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ If you disable some components, do it at {{chromeUrl}} _about:addons_. Don't dis
3535
Notes
3636

3737
* Clipboard And Indent can work without [Settings](Settings). Then the default indentation step is 4 spaces.
38-
* [ExitConfirmationChecker](ExitConfirmationChecker) can be used either with or without [ExtraCommands](ExtraCommands). If used together, then it applies to Selenese defined in [ExtraCommands](ExtraCommands).
39-
* Miscellaneous, [Settings](Settings) and SQLite Connnection Manager can be used without Selenium IDE (as Javascript code modules). Then they don't require [ExtensionSequencer](ExtensionSequencer). However, if you want to use them within Selenium IDE, you need [ExtensionSequencer](ExtensionSequencer), too.
38+
* [Exit Confirmation Checker] can be used either with or without [ExtraCommands](ExtraCommands). If used together, then it applies to Selenese defined in [ExtraCommands](ExtraCommands).
39+
* Miscellaneous, [Settings](Settings) and SQLite Connnection Manager can be used without Selenium IDE (as Javascript code modules). Then they don't require [Extension Sequencer]. However, if you want to use them within Selenium IDE, you need [Extension Sequencer], too.
4040
* Run All Favorites also requires [Favorites (Selenium IDE)](https://addons.mozilla.org/en-US/firefox/addon/favorites-selenium-ide/).
4141
* [Settings](Settings) can be used without DB Objects, but then you can't reload [script][script db]/vanilla[vanilla db]/[app DB] through GUI (as per {{navReloadingDatabases}}).

CustomisingSelenese.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Do not search for implementation functions of Selenese action [commands][command
1111
For locating the source code of those Javascript functions see [JavascriptSpecial](JavascriptSpecial) > [Locating a Javascript function in sources](JavascriptSpecial#locating-a-javascript-function-in-sources).
1212

1313
# Defining functions in Selenium Core #
14-
This is for files normally loaded into [Core scope] (via [Bootstrap](Bootstrap) or [ExtensionSequencer](ExtensionSequencer), which use [JavascriptComplex](JavascriptComplex) > [mozIJSSubScriptLoader](JavascriptComplex#mozIJSSubScriptLoader)). (That's not for {{navJavascriptCodeModules}}.)
14+
This is for files normally loaded into [Core scope] (via [Bootstrap](Bootstrap) or [Extension Sequencer], which use [JavascriptComplex](JavascriptComplex) > [mozIJSSubScriptLoader](JavascriptComplex#mozIJSSubScriptLoader)). (That's not for {{navJavascriptCodeModules}}.)
1515

1616
You can define functions for [Core scope] in either way mentioned at [JavascriptEssential](JavascriptEssential) > [Defining Javascript functions](JavascriptEssential#defining-javascript-functions). However, if you use [the classic way](JavascriptEssential#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}}.
1717

DevelopmentTools.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ If the source file hasn't been loaded yet and you want to set the breakpoint bef
9494

9595
Then (re)start Firefox, open Browser Toolbox/Debugger and only after that open Selenium IDE. The debugger will pause on that line.
9696

97-
You can also start Firefox with debugger from shell, i.e. `firefox -jsdebugger`. However, it seems that you can't use keyword `debugger` to investigate the very first loading stage of extensions (e.g. when [ExtensionSequencer](ExtensionSequencer) loads an extension's `SeLiteExtensionSequencerManifest.js`). The debugger doesn't stop there. Instead, see above how to print messages with `console`.
97+
You can also start Firefox with debugger from shell, i.e. `firefox -jsdebugger`. However, it seems that you can't use keyword `debugger` to investigate the very first loading stage of extensions (e.g. when [Extension Sequencer] loads an extension's `SeLiteExtensionSequencerManifest.js`). The debugger doesn't stop there. Instead, see above how to print messages with `console`.
9898

9999
#### Breakpoints in Core extensions ####
100-
Selenium IDE loads custom [Core extensions][core extension] twice (reported in [ThirdPartyIssues](ThirdPartyIssues) > [Core extensions are loaded 2x](https://github.com/SeleniumHQ/selenium/issues/1549)). That applies regardless of whether you use Selenium IDE menu Options > Options > General > Selenium Core extensions, or whether you use [ExtensionSequencer](ExtensionSequencer).
100+
Selenium IDE loads custom [Core extensions][core extension] twice (reported in [ThirdPartyIssues](ThirdPartyIssues) > [Core extensions are loaded 2x](https://github.com/SeleniumHQ/selenium/issues/1549)). That applies regardless of whether you use Selenium IDE menu Options > Options > General > Selenium Core extensions, or whether you use [Extension Sequencer].
101101

102102
Custom Core file(s) get first loaded at the start of Selenium IDE. Then they get loaded once more when you run a Selenese command (or a whole [case] or [suite]) for the first time. So, when you use Firefox Browser Toolbox/Debugger, do it only after you've run at least one Selenese command. Browser Toolbox/Debugger reports those files with `?numericTimeStamp` appended to their file names. For each [Core extension] pick the one that has the highest timestamp.
103103

0 commit comments

Comments
 (0)