-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathControlBase.cs
More file actions
66 lines (52 loc) · 2.82 KB
/
ControlBase.cs
File metadata and controls
66 lines (52 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Threading.Tasks;
using Microsoft.Playwright;
using Playwright.ReactUI.Controls.Assertions;
using Playwright.ReactUI.Controls.Constants;
using Playwright.ReactUI.Controls.Extensions;
namespace Playwright.ReactUI.Controls;
public class ControlBase
{
protected ControlBase(ILocator rootLocator)
{
RootLocator = rootLocator;
Page = rootLocator.Page;
}
public ILocator RootLocator { get; }
public IPage Page { get; }
public virtual async Task<bool> IsVisibleAsync(LocatorIsVisibleOptions? options = default)
=> await RootLocator.IsVisibleAsync(options).ConfigureAwait(false);
public async Task<bool> HasErrorAsync(LocatorGetAttributeOptions? options = default)
{
await WaitForAsync(new LocatorWaitForOptions { Timeout = options?.Timeout }).ConfigureAwait(false);
return await HasAttributeAsync(DataVisualState.Error, options).ConfigureAwait(false);
}
public async Task<bool> HasWarningAsync(LocatorGetAttributeOptions? options = default)
{
await WaitForAsync(new LocatorWaitForOptions { Timeout = options?.Timeout }).ConfigureAwait(false);
return await HasAttributeAsync(DataVisualState.Warning, options).ConfigureAwait(false);
}
public virtual async Task ClickAsync(LocatorClickOptions? options = default)
=> await RootLocator.ClickAsync(options).ConfigureAwait(false);
public async Task HoverAsync(LocatorHoverOptions? options = default)
=> await RootLocator.HoverAsync(options).ConfigureAwait(false);
public async Task ScrollIntoViewIfNeededAsync(LocatorScrollIntoViewIfNeededOptions? options = default)
=> await RootLocator.ScrollIntoViewIfNeededAsync(options).ConfigureAwait(false);
public async Task WaitForAsync(LocatorWaitForOptions? options = default)
=> await RootLocator.WaitForAsync(options).ConfigureAwait(false);
public async Task<bool> HasAttributeAsync(string name, LocatorGetAttributeOptions? options = default)
{
await WaitForAsync(new LocatorWaitForOptions { Timeout = options?.Timeout }).ConfigureAwait(false);
return await GetAttributeValueAsync(name, options).ConfigureAwait(false) != null;
}
public async Task<string?> GetAttributeValueAsync(
string attributeName,
LocatorGetAttributeOptions? options = default
) => await RootLocator.GetAttributeValueAsync(attributeName, options).ConfigureAwait(false);
[Obsolete("Используй ExpectV2. В будущих версиях этот метод будет удален")]
public virtual ILocatorAssertions Expect() => RootLocator.Expect();
/*
* Новая версия ассертов над контролами
*/
public ControlBaseAssertionsV2 ExpectV2() => new(this);
}