-
Notifications
You must be signed in to change notification settings - Fork 126
/
Paging.cs
45 lines (37 loc) · 1.42 KB
/
Paging.cs
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
using System.Linq;
using Kontur.RetryableAssertions.Extensions;
using Kontur.Selone.Properties;
using OpenQA.Selenium;
using SKBKontur.SeleniumTesting.Internals;
using SKBKontur.SeleniumTesting.Internals.Selectors;
namespace SKBKontur.SeleniumTesting.Controls
{
public class Paging : ControlList<Label>
{
public Paging(ISearchContainer container, ISelector selector)
: base(container, selector, Paging.GetPagesSelector())
{
}
public void GoToPage(int page, Timings timings = null)
{
this.AsEnumerable().Wait().Single(x => x.Text.AssertEqualTo(page.ToString()), timings.GetConfiguration()).Click();
}
public void GoToNextPage(Timings timings = null)
{
this.AsEnumerable().Wait().Single(x => x.Text.AssertStartsWith("Дальше"), timings.GetConfiguration()).Click();
}
public IProp<int> ActivePage => ReactProperty<int>("ActivePage");
public IProp<int> PagesCount => ReactProperty<int>("PagesCount");
public static ISelector GetPagesSelector()
{
try
{
return new BySelector(By.CssSelector("[data-tid~='Paging__pageLink'],[data-tid~='Paging__forwardLink']"));
}
catch(NoSuchElementException ex)
{
return new BySelector(By.CssSelector("[data-comp-name~='component']"));
}
}
}
}