Table of Contents

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

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

A model representing a pre-written piece of executable JavaScript, which accepts 7 parameters, but which is expected to return a result.

public class NamedScriptWithResult<T1, T2, T3, T4, T5, T6, T7, TResult> : NamedScriptBasis, IHasName

Type Parameters

T1

The type of the first parameter

T2

The type of the second parameter

T3

The type of the third parameter

T4

The type of the fourth parameter

T5

The type of the fifth parameter

T6

The type of the sixth parameter

T7

The type of the seventh parameter

TResult

The expected result/return type from the script

Inheritance
NamedScriptWithResult<T1, T2, T3, T4, T5, T6, T7, TResult>
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

NamedScriptWithResult(string, string)

Initialises a new instance of NamedScriptWithResult<TResult>.

public NamedScriptWithResult(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>
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>