@atomic-testing/playwright 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { ClickOption, CssProperty, EnterTextOption, Interactor,
|
|
1
|
+
import { ClickOption, CssProperty, EnterTextOption, Interactor, Optional, PartLocator } from '@atomic-testing/core';
|
|
2
2
|
import { Page } from '@playwright/test';
|
|
3
3
|
export declare class PlaywrightInteractor implements Interactor {
|
|
4
4
|
readonly page: Page;
|
|
5
5
|
constructor(page: Page);
|
|
6
|
-
selectOptionValue(locator:
|
|
7
|
-
getInputValue(locator:
|
|
8
|
-
getSelectValues(locator:
|
|
9
|
-
getSelectLabels(locator:
|
|
10
|
-
getStyleValue(locator:
|
|
11
|
-
enterText(locator:
|
|
12
|
-
click(locator:
|
|
13
|
-
hover(locator:
|
|
6
|
+
selectOptionValue(locator: PartLocator, values: string[]): Promise<void>;
|
|
7
|
+
getInputValue(locator: PartLocator): Promise<Optional<string>>;
|
|
8
|
+
getSelectValues(locator: PartLocator): Promise<Optional<readonly string[]>>;
|
|
9
|
+
getSelectLabels(locator: PartLocator): Promise<Optional<readonly string[]>>;
|
|
10
|
+
getStyleValue(locator: PartLocator, propertyName: CssProperty): Promise<Optional<string>>;
|
|
11
|
+
enterText(locator: PartLocator, text: string, option?: Optional<Partial<EnterTextOption>>): Promise<void>;
|
|
12
|
+
click(locator: PartLocator, option?: ClickOption): Promise<void>;
|
|
13
|
+
hover(locator: PartLocator): Promise<void>;
|
|
14
14
|
wait(ms: number): Promise<void>;
|
|
15
|
-
getAttribute(locator:
|
|
16
|
-
getAttribute(locator:
|
|
17
|
-
getAttribute(locator:
|
|
18
|
-
getText(locator:
|
|
19
|
-
exists(locator:
|
|
20
|
-
isChecked(locator:
|
|
21
|
-
isDisabled(locator:
|
|
22
|
-
isReadonly(locator:
|
|
23
|
-
isVisible(locator:
|
|
24
|
-
hasCssClass(locator:
|
|
25
|
-
hasAttribute(locator:
|
|
15
|
+
getAttribute(locator: PartLocator, name: string, isMultiple: true): Promise<readonly string[]>;
|
|
16
|
+
getAttribute(locator: PartLocator, name: string, isMultiple: false): Promise<Optional<string>>;
|
|
17
|
+
getAttribute(locator: PartLocator, name: string): Promise<Optional<string>>;
|
|
18
|
+
getText(locator: PartLocator): Promise<Optional<string>>;
|
|
19
|
+
exists(locator: PartLocator): Promise<boolean>;
|
|
20
|
+
isChecked(locator: PartLocator): Promise<boolean>;
|
|
21
|
+
isDisabled(locator: PartLocator): Promise<boolean>;
|
|
22
|
+
isReadonly(locator: PartLocator): Promise<boolean>;
|
|
23
|
+
isVisible(locator: PartLocator): Promise<boolean>;
|
|
24
|
+
hasCssClass(locator: PartLocator, className: string): Promise<boolean>;
|
|
25
|
+
hasAttribute(locator: PartLocator, name: string): Promise<boolean>;
|
|
26
26
|
clone(): Interactor;
|
|
27
27
|
}
|
|
@@ -29,10 +29,7 @@ class PlaywrightInteractor {
|
|
|
29
29
|
}
|
|
30
30
|
getSelectValues(locator) {
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
const optionLocator =
|
|
33
|
-
type: core_1.LocatorType.Css,
|
|
34
|
-
selector: 'option:checked',
|
|
35
|
-
};
|
|
32
|
+
const optionLocator = (0, core_1.byCssSelector)('option:checked');
|
|
36
33
|
const selectedOptionLocator = core_1.locatorUtil.append(locator, optionLocator);
|
|
37
34
|
const cssLocator = core_1.locatorUtil.toCssSelector(selectedOptionLocator);
|
|
38
35
|
const allOptions = yield this.page.locator(cssLocator).all();
|
|
@@ -48,10 +45,7 @@ class PlaywrightInteractor {
|
|
|
48
45
|
}
|
|
49
46
|
getSelectLabels(locator) {
|
|
50
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const optionLocator =
|
|
52
|
-
type: core_1.LocatorType.Css,
|
|
53
|
-
selector: 'option:checked',
|
|
54
|
-
};
|
|
48
|
+
const optionLocator = (0, core_1.byCssSelector)('option:checked');
|
|
55
49
|
const selectedOptionLocator = core_1.locatorUtil.append(locator, optionLocator);
|
|
56
50
|
const cssLocator = core_1.locatorUtil.toCssSelector(selectedOptionLocator);
|
|
57
51
|
const allOptions = yield this.page.locator(cssLocator).all();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightInteractor.js","sourceRoot":"","sources":["../src/PlaywrightInteractor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"PlaywrightInteractor.js","sourceRoot":"","sources":["../src/PlaywrightInteractor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAU8B;AAG9B,MAAa,oBAAoB;IAC/B,YAA4B,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAEpC,iBAAiB,CAAC,OAAoB,EAAE,MAAgB;;YAC5D,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEK,aAAa,CAAC,OAAoB;;YACtC,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QACpD,CAAC;KAAA;IAEK,eAAe,CAAC,OAAoB;;YACxC,MAAM,aAAa,GAAgB,IAAA,oBAAa,EAAC,gBAAgB,CAAC,CAAC;YACnE,MAAM,qBAAqB,GAAG,kBAAW,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACpB;aACF;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEK,eAAe,CAAC,OAAoB;;YACxC,MAAM,aAAa,GAAgB,IAAA,oBAAa,EAAC,gBAAgB,CAAC,CAAC;YACnE,MAAM,qBAAqB,GAAG,kBAAW,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACpB;aACF;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEK,aAAa,CAAC,OAAoB,EAAE,YAAyB;;YACjE,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACvD,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,IAAc,CAAC,CAAC;YAC3E,CAAC,EAAE,YAAY,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEK,SAAS,CAAC,OAAoB,EAAE,IAAY,EAAE,MAA2C;;YAC7F,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;gBACnB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;aAC7C;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;KAAA;IAEK,KAAK,CAAC,OAAoB,EAAE,MAAoB;;YACpD,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,CAAC;KAAA;IAEK,KAAK,CAAC,OAAoB;;YAC9B,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,CAAC;KAAA;IAED,IAAI,CAAC,EAAU;QACb,OAAO,iBAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAKK,YAAY,CAChB,OAAoB,EACpB,IAAY,EACZ,UAAoB;;YAEpB,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,UAAU,EAAE;gBACd,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;oBAC9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC/C,IAAI,KAAK,IAAI,IAAI,EAAE;wBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACpB;iBACF;gBACD,OAAO,MAAM,CAAC;aACf;YACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,SAAS,CAAC;QAC5B,CAAC;KAAA;IAEK,OAAO,CAAC,OAAoB;;YAChC,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/D,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,SAAS,CAAC;QAC3B,CAAC;KAAA;IAEK,MAAM,CAAC,OAAoB;;YAC/B,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1D,OAAO,KAAK,GAAG,CAAC,CAAC;QACnB,CAAC;KAAA;IAEK,SAAS,CAAC,OAAoB;;YAClC,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;YAChE,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEK,UAAU,CAAC,OAAoB;;YACnC,MAAM,UAAU,GAAG,kBAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;YACpE,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;IAEK,UAAU,CAAC,OAAoB;;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9D,OAAO,QAAQ,IAAI,IAAI,CAAC;QAC1B,CAAC;KAAA;IAEK,SAAS,CAAC,OAAoB;;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,KAAK,CAAC;aACd;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,OAAO,KAAK,GAAG,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACnE,IAAI,UAAU,KAAK,QAAQ,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,OAAO,KAAK,MAAM,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEK,WAAW,CAAC,OAAoB,EAAE,SAAiB;;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,YAAY,CAAC,OAAoB,EAAE,IAAY;;YACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzD,OAAO,SAAS,IAAI,IAAI,CAAC;QAC3B,CAAC;KAAA;IAED,KAAK;QACH,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AA1KD,oDA0KC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atomic-testing/playwright",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "Atomic Testing Playwright Adapter",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"url": "https://github.com/atomic-testing/atomic-testing.git"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@atomic-testing/core": "0.
|
|
19
|
-
"@atomic-testing/test-runner": "0.
|
|
18
|
+
"@atomic-testing/core": "0.28.0",
|
|
19
|
+
"@atomic-testing/test-runner": "0.28.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@playwright/test": "^1.32.1",
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
+
byCssSelector,
|
|
2
3
|
ClickOption,
|
|
3
4
|
CssProperty,
|
|
4
5
|
EnterTextOption,
|
|
5
6
|
Interactor,
|
|
6
|
-
LocatorChain,
|
|
7
|
-
LocatorType,
|
|
8
7
|
locatorUtil,
|
|
9
8
|
Optional,
|
|
10
|
-
|
|
9
|
+
PartLocator,
|
|
11
10
|
timingUtil,
|
|
12
11
|
} from '@atomic-testing/core';
|
|
13
12
|
import { Page } from '@playwright/test';
|
|
@@ -15,21 +14,18 @@ import { Page } from '@playwright/test';
|
|
|
15
14
|
export class PlaywrightInteractor implements Interactor {
|
|
16
15
|
constructor(public readonly page: Page) {}
|
|
17
16
|
|
|
18
|
-
async selectOptionValue(locator:
|
|
17
|
+
async selectOptionValue(locator: PartLocator, values: string[]): Promise<void> {
|
|
19
18
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
20
19
|
await this.page.locator(cssLocator).selectOption(values);
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
async getInputValue(locator:
|
|
22
|
+
async getInputValue(locator: PartLocator): Promise<Optional<string>> {
|
|
24
23
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
25
24
|
return this.page.locator(cssLocator).inputValue();
|
|
26
25
|
}
|
|
27
26
|
|
|
28
|
-
async getSelectValues(locator:
|
|
29
|
-
const optionLocator:
|
|
30
|
-
type: LocatorType.Css,
|
|
31
|
-
selector: 'option:checked',
|
|
32
|
-
};
|
|
27
|
+
async getSelectValues(locator: PartLocator): Promise<Optional<readonly string[]>> {
|
|
28
|
+
const optionLocator: PartLocator = byCssSelector('option:checked');
|
|
33
29
|
const selectedOptionLocator = locatorUtil.append(locator, optionLocator);
|
|
34
30
|
const cssLocator = locatorUtil.toCssSelector(selectedOptionLocator);
|
|
35
31
|
const allOptions = await this.page.locator(cssLocator).all();
|
|
@@ -43,11 +39,8 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
43
39
|
return values;
|
|
44
40
|
}
|
|
45
41
|
|
|
46
|
-
async getSelectLabels(locator:
|
|
47
|
-
const optionLocator:
|
|
48
|
-
type: LocatorType.Css,
|
|
49
|
-
selector: 'option:checked',
|
|
50
|
-
};
|
|
42
|
+
async getSelectLabels(locator: PartLocator): Promise<Optional<readonly string[]>> {
|
|
43
|
+
const optionLocator: PartLocator = byCssSelector('option:checked');
|
|
51
44
|
const selectedOptionLocator = locatorUtil.append(locator, optionLocator);
|
|
52
45
|
const cssLocator = locatorUtil.toCssSelector(selectedOptionLocator);
|
|
53
46
|
const allOptions = await this.page.locator(cssLocator).all();
|
|
@@ -61,7 +54,7 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
61
54
|
return labels;
|
|
62
55
|
}
|
|
63
56
|
|
|
64
|
-
async getStyleValue(locator:
|
|
57
|
+
async getStyleValue(locator: PartLocator, propertyName: CssProperty): Promise<Optional<string>> {
|
|
65
58
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
66
59
|
const elLocator = this.page.locator(cssLocator);
|
|
67
60
|
const value = await elLocator.evaluate((element, prop) => {
|
|
@@ -70,7 +63,7 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
70
63
|
return value;
|
|
71
64
|
}
|
|
72
65
|
|
|
73
|
-
async enterText(locator:
|
|
66
|
+
async enterText(locator: PartLocator, text: string, option?: Optional<Partial<EnterTextOption>>): Promise<void> {
|
|
74
67
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
75
68
|
if (!option?.append) {
|
|
76
69
|
await this.page.locator(cssLocator).clear();
|
|
@@ -78,12 +71,12 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
78
71
|
await this.page.locator(cssLocator).type(text);
|
|
79
72
|
}
|
|
80
73
|
|
|
81
|
-
async click(locator:
|
|
74
|
+
async click(locator: PartLocator, option?: ClickOption): Promise<void> {
|
|
82
75
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
83
76
|
await this.page.locator(cssLocator).click();
|
|
84
77
|
}
|
|
85
78
|
|
|
86
|
-
async hover(locator:
|
|
79
|
+
async hover(locator: PartLocator): Promise<void> {
|
|
87
80
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
88
81
|
await this.page.locator(cssLocator).hover();
|
|
89
82
|
}
|
|
@@ -92,11 +85,11 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
92
85
|
return timingUtil.wait(ms);
|
|
93
86
|
}
|
|
94
87
|
|
|
95
|
-
async getAttribute(locator:
|
|
96
|
-
async getAttribute(locator:
|
|
97
|
-
async getAttribute(locator:
|
|
88
|
+
async getAttribute(locator: PartLocator, name: string, isMultiple: true): Promise<readonly string[]>;
|
|
89
|
+
async getAttribute(locator: PartLocator, name: string, isMultiple: false): Promise<Optional<string>>;
|
|
90
|
+
async getAttribute(locator: PartLocator, name: string): Promise<Optional<string>>;
|
|
98
91
|
async getAttribute(
|
|
99
|
-
locator:
|
|
92
|
+
locator: PartLocator,
|
|
100
93
|
name: string,
|
|
101
94
|
isMultiple?: boolean,
|
|
102
95
|
): Promise<Optional<string> | readonly string[]> {
|
|
@@ -117,36 +110,36 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
117
110
|
return value ?? undefined;
|
|
118
111
|
}
|
|
119
112
|
|
|
120
|
-
async getText(locator:
|
|
113
|
+
async getText(locator: PartLocator): Promise<Optional<string>> {
|
|
121
114
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
122
115
|
const text = await this.page.locator(cssLocator).textContent();
|
|
123
116
|
return text ?? undefined;
|
|
124
117
|
}
|
|
125
118
|
|
|
126
|
-
async exists(locator:
|
|
119
|
+
async exists(locator: PartLocator): Promise<boolean> {
|
|
127
120
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
128
121
|
const count = await this.page.locator(cssLocator).count();
|
|
129
122
|
return count > 0;
|
|
130
123
|
}
|
|
131
124
|
|
|
132
|
-
async isChecked(locator:
|
|
125
|
+
async isChecked(locator: PartLocator): Promise<boolean> {
|
|
133
126
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
134
127
|
const checked = await this.page.locator(cssLocator).isChecked();
|
|
135
128
|
return checked;
|
|
136
129
|
}
|
|
137
130
|
|
|
138
|
-
async isDisabled(locator:
|
|
131
|
+
async isDisabled(locator: PartLocator): Promise<boolean> {
|
|
139
132
|
const cssLocator = locatorUtil.toCssSelector(locator);
|
|
140
133
|
const isDisabled = await this.page.locator(cssLocator).isDisabled();
|
|
141
134
|
return isDisabled;
|
|
142
135
|
}
|
|
143
136
|
|
|
144
|
-
async isReadonly(locator:
|
|
137
|
+
async isReadonly(locator: PartLocator): Promise<boolean> {
|
|
145
138
|
const readonly = await this.getAttribute(locator, 'readonly');
|
|
146
139
|
return readonly != null;
|
|
147
140
|
}
|
|
148
141
|
|
|
149
|
-
async isVisible(locator:
|
|
142
|
+
async isVisible(locator: PartLocator): Promise<boolean> {
|
|
150
143
|
const exists = await this.exists(locator);
|
|
151
144
|
if (!exists) {
|
|
152
145
|
return false;
|
|
@@ -170,7 +163,7 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
170
163
|
return true;
|
|
171
164
|
}
|
|
172
165
|
|
|
173
|
-
async hasCssClass(locator:
|
|
166
|
+
async hasCssClass(locator: PartLocator, className: string): Promise<boolean> {
|
|
174
167
|
const classNames = await this.getAttribute(locator, 'class');
|
|
175
168
|
if (classNames == null) {
|
|
176
169
|
return false;
|
|
@@ -180,7 +173,7 @@ export class PlaywrightInteractor implements Interactor {
|
|
|
180
173
|
return names.includes(className);
|
|
181
174
|
}
|
|
182
175
|
|
|
183
|
-
async hasAttribute(locator:
|
|
176
|
+
async hasAttribute(locator: PartLocator, name: string): Promise<boolean> {
|
|
184
177
|
const attrValue = await this.getAttribute(locator, name);
|
|
185
178
|
return attrValue != null;
|
|
186
179
|
}
|