Skip to content

Commit 9684923

Browse files
authored
[dotnet] Allow overriding default Actions duration (#13229)
Allow overriding default Actions duration
1 parent 5494e07 commit 9684923

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

dotnet/src/webdriver/Interactions/Actions.cs

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ namespace OpenQA.Selenium.Interactions
2626
/// </summary>
2727
public class Actions : IAction
2828
{
29-
private readonly TimeSpan DefaultScrollDuration = TimeSpan.FromMilliseconds(250);
30-
private readonly TimeSpan DefaultMouseMoveDuration = TimeSpan.FromMilliseconds(250);
29+
private readonly TimeSpan duration;
3130
private ActionBuilder actionBuilder = new ActionBuilder();
3231
private PointerInputDevice activePointer;
3332
private KeyInputDevice activeKeyboard;
@@ -39,6 +38,17 @@ public class Actions : IAction
3938
/// </summary>
4039
/// <param name="driver">The <see cref="IWebDriver"/> object on which the actions built will be performed.</param>
4140
public Actions(IWebDriver driver)
41+
: this(driver, TimeSpan.FromMilliseconds(250))
42+
{
43+
44+
}
45+
46+
/// <summary>
47+
/// Initializes a new instance of the <see cref="Actions"/> class.
48+
/// </summary>
49+
/// <param name="driver">The <see cref="IWebDriver"/> object on which the actions built will be performed.</param>
50+
/// <param name="duration">How long durable action is expected to take.</param>
51+
public Actions(IWebDriver driver, TimeSpan duration)
4252
{
4353
IActionExecutor actionExecutor = GetDriverAs<IActionExecutor>(driver);
4454
if (actionExecutor == null)
@@ -47,6 +57,8 @@ public Actions(IWebDriver driver)
4757
}
4858

4959
this.actionExecutor = actionExecutor;
60+
61+
this.duration = duration;
5062
}
5163

5264
/// <summary>
@@ -242,7 +254,7 @@ public Actions KeyDown(IWebElement element, string theKey)
242254
ILocatable target = GetLocatableFromElement(element);
243255
if (element != null)
244256
{
245-
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(element, 0, 0, DefaultMouseMoveDuration));
257+
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(element, 0, 0, duration));
246258
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerDown(MouseButton.Left));
247259
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerUp(MouseButton.Left));
248260
}
@@ -286,7 +298,7 @@ public Actions KeyUp(IWebElement element, string theKey)
286298
ILocatable target = GetLocatableFromElement(element);
287299
if (element != null)
288300
{
289-
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(element, 0, 0, DefaultMouseMoveDuration));
301+
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(element, 0, 0, duration));
290302
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerDown(MouseButton.Left));
291303
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerUp(MouseButton.Left));
292304
}
@@ -321,7 +333,7 @@ public Actions SendKeys(IWebElement element, string keysToSend)
321333
ILocatable target = GetLocatableFromElement(element);
322334
if (element != null)
323335
{
324-
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(element, 0, 0, DefaultMouseMoveDuration));
336+
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(element, 0, 0, duration));
325337
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerDown(MouseButton.Left));
326338
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerUp(MouseButton.Left));
327339
}
@@ -448,7 +460,7 @@ public Actions MoveToElement(IWebElement toElement)
448460
/// <returns>A self-reference to this <see cref="Actions"/>.</returns>
449461
public Actions MoveToElement(IWebElement toElement, int offsetX, int offsetY)
450462
{
451-
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(toElement, offsetX, offsetY, DefaultMouseMoveDuration));
463+
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(toElement, offsetX, offsetY, duration));
452464
return this;
453465
}
454466

@@ -460,7 +472,7 @@ public Actions MoveToElement(IWebElement toElement, int offsetX, int offsetY)
460472
/// <returns>A self-reference to this <see cref="Actions"/>.</returns>
461473
public Actions MoveByOffset(int offsetX, int offsetY)
462474
{
463-
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(CoordinateOrigin.Pointer, offsetX, offsetY, DefaultMouseMoveDuration));
475+
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(CoordinateOrigin.Pointer, offsetX, offsetY, duration));
464476
return this;
465477
}
466478

@@ -472,7 +484,7 @@ public Actions MoveByOffset(int offsetX, int offsetY)
472484
/// <returns>A self-reference to this <see cref="Actions"/>.</returns>
473485
public Actions MoveToLocation(int offsetX, int offsetY)
474486
{
475-
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(CoordinateOrigin.Viewport, offsetX, offsetY, DefaultMouseMoveDuration));
487+
this.actionBuilder.AddAction(this.GetActivePointer().CreatePointerMove(CoordinateOrigin.Viewport, offsetX, offsetY, duration));
476488
return this;
477489
}
478490

@@ -530,7 +542,7 @@ public Actions DragAndDropToOffset(IWebElement source, int offsetX, int offsetY)
530542
/// <returns>A self-reference to this <see cref="Actions"/>.</returns>
531543
public Actions ScrollToElement(IWebElement element)
532544
{
533-
this.actionBuilder.AddAction(this.GetActiveWheel().CreateWheelScroll(element, 0, 0, 0, 0, DefaultScrollDuration));
545+
this.actionBuilder.AddAction(this.GetActiveWheel().CreateWheelScroll(element, 0, 0, 0, 0, duration));
534546

535547
return this;
536548
}
@@ -543,7 +555,7 @@ public Actions ScrollToElement(IWebElement element)
543555
/// <returns>A self-reference to this <see cref="Actions"/>.</returns>
544556
public Actions ScrollByAmount(int deltaX, int deltaY)
545557
{
546-
this.actionBuilder.AddAction(this.GetActiveWheel().CreateWheelScroll(deltaX, deltaY, DefaultScrollDuration));
558+
this.actionBuilder.AddAction(this.GetActiveWheel().CreateWheelScroll(deltaX, deltaY, duration));
547559

548560
return this;
549561
}
@@ -571,12 +583,12 @@ public Actions ScrollFromOrigin(WheelInputDevice.ScrollOrigin scrollOrigin, int
571583
if (scrollOrigin.Viewport)
572584
{
573585
this.actionBuilder.AddAction(this.GetActiveWheel().CreateWheelScroll(CoordinateOrigin.Viewport,
574-
scrollOrigin.XOffset, scrollOrigin.YOffset, deltaX, deltaY, DefaultScrollDuration));
586+
scrollOrigin.XOffset, scrollOrigin.YOffset, deltaX, deltaY, duration));
575587
}
576588
else
577589
{
578590
this.actionBuilder.AddAction(this.GetActiveWheel().CreateWheelScroll(scrollOrigin.Element,
579-
scrollOrigin.XOffset, scrollOrigin.YOffset, deltaX, deltaY, DefaultScrollDuration));
591+
scrollOrigin.XOffset, scrollOrigin.YOffset, deltaX, deltaY, duration));
580592
}
581593

582594
return this;

0 commit comments

Comments
 (0)