Table of Contents

Class NamedScript<T1, T2>

Namespace
CSF.Screenplay.Selenium
Assembly
CSF.Screenplay.Selenium.dll

A model representing a pre-written piece of executable JavaScript, which accepts 2 parameters and which returns no result.

public class NamedScript<T1, T2> : NamedScriptBasis, IHasName

Type Parameters

T1

The type of the first parameter

T2

The type of the second parameter

Inheritance
NamedScript<T1, T2>
Implements
Inherited Members

Remarks

Whilst the generic type parameters of this type have no direct bearing upon its members (such as properties), they are very useful when combined with the builder methods ExecuteAScript(NamedScript) and its many overloads. Developers are encouraged to represent JavaScripts that they wish to execute in the web browser using this type (and related types, see "See Also"). Where the script accepts parameters and/or returns a result, choose a type which specifies appropriate generic type arguments for those parameters and returned type.

For scripts which are created in this manner, getting an IPerformable or IPerformableWithResult<TResult> for those scripts is very easy and type safe. Use the ExecuteAScript method from the PerformableBuilder and the compiler will use the generic type arguments of this type to select an appropriate overload which provides type-safety for specifying the parameter values and the return type, as appropriate.

Another benefit is that scripts defined and stored in instances of this type are reusable and easily catalogued. See the Scripts helper class for an example of a catalogue of script objects which may be executed. Once again, developers are encouraged to follow this pattern in their own applications/tests which use Screenplay & Selenium.

Constructors

NamedScript(string, string)

Initialises a new instance of NamedScript.

public NamedScript(string scriptBody, string name)

Parameters

scriptBody string

The body of the JavaScript

name string

The human-readable name of the script

Exceptions

ArgumentException

If either parameter is null or whitespace-only.

See Also

NamedScript
NamedScript<T1>
NamedScript<T1, T2, T3>
NamedScript<T1, T2, T3, T4>
NamedScript<T1, T2, T3, T4, T5>
NamedScript<T1, T2, T3, T4, T5, T6>
NamedScript<T1, T2, T3, T4, T5, T6, T7>
NamedScriptWithResult<TResult>
NamedScriptWithResult<T1, TResult>
NamedScriptWithResult<T1, T2, TResult>
NamedScriptWithResult<T1, T2, T3, TResult>
NamedScriptWithResult<T1, T2, T3, T4, TResult>
NamedScriptWithResult<T1, T2, T3, T4, T5, TResult>
NamedScriptWithResult<T1, T2, T3, T4, T5, T6, TResult>
NamedScriptWithResult<T1, T2, T3, T4, T5, T6, T7, TResult>