import {DoubleClick} from '@serenity-js/webdriverio/lib/screenplay/interactions'
DoubleClick
Instructs the Actor to perform a double-click on a given Web element.
Extends:
Examples:
<!--
The editor shows up when the user double-clicks
on one of the properties of their profile
and let's them change the value of that property.
-->
<div id="user-profile">
<ul>
<li id="display-name" ondblclick="edit(this)">User12345</li>
<li id="email-address" ondblclick="edit(this)">tester@example.org</li>
</ul>
<form id="editor" class="hidden">
<input type="text" value="" />
</form>
</div>
import { by, Target } from '@serenity-js/webdriverio';
class UserProfile {
static displayName = Target.the('display name')
.located(by.id('display-name'));
static emailAddress = Target.the('email address')
.located(by.id('email-address'));
static editor = Target.the('editor')
.located(by.id('editor'));
}
import { actorCalled } from '@serenity-js/core';
import { BrowseTheWeb, DoubleClick, isVisible, Enter, Text, Wait } from '@serenity-js/webdriverio';
import { Ensure, equals, not } from '@serenity-js/assertions';
actorCalled('Dorothy')
.whoCan(BrowseTheWeb.using(browser))
.attemptsTo(
DoubleClick.on(UserProfile.displayName),
Wait.until(UserProfile.editor, isVisible()),
Enter.theValue('New username').into(UserProfile.editor),
Ensure.that(Text.of(UserProfile.displayName), equals('New username')),
Ensure.that(UserProfile.editor, not(isVisible()))
);
See also:
Static Method Summary
Static Public Methods | ||
public static |
on(target: Answerable<Element<'async'>>): Interaction Instantiates this Interaction. |
Constructor Summary
Public Constructor | ||
public |
constructor(target: Answerable<Element<'async'>>) |
Method Summary
Public Methods | ||
public |
async performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> Makes the provided Actor perform this Interaction. |
Inherited Summary
From class WebElementInteraction | ||
public |
toString(): string Generates a description to be used when reporting this Activity. |
|
protected |
async resolve(actor: AnswersQuestions, element: Answerable<Element<'async'>>): Promise<Element<'async'>> Returns the resolved Element, or throws a LogicError
if the element is |
Static Public Methods
public static on(target: Answerable<Element<'async'>>): Interaction source
Instantiates this Interaction.
Params:
Name | Type | Attribute | Description |
target | Answerable<Element<'async'>> | The element to be double-clicked on |
Public Constructors
public constructor(target: Answerable<Element<'async'>>) source
Override:
WebElementInteraction#constructorParams:
Name | Type | Attribute | Description |
target | Answerable<Element<'async'>> | The element to be double-clicked on |
Public Methods
public async performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> source
Makes the provided Actor perform this Interaction.
Params:
Name | Type | Attribute | Description |
actor | UsesAbilities & AnswersQuestions | An Actor to perform this Interaction |
Returns:
PromiseLike<void> |