@sap_oss/wdio-qmate-service 3.6.3 → 3.7.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.
- package/lib/scripts/locators/qmateLocator.js +62 -23
- package/lib/scripts/locators/qmateLocator.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.js +5 -0
- package/lib/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/BaseFilter.d.ts +2 -2
- package/lib/scripts/locators/qmateLocatorSrc/filters/BaseFilter.js +7 -2
- package/lib/scripts/locators/qmateLocatorSrc/filters/BaseFilter.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/ChildFilter.js +5 -0
- package/lib/scripts/locators/qmateLocatorSrc/filters/ChildFilter.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.js +6 -0
- package/lib/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/ElementFilter.js +13 -10
- package/lib/scripts/locators/qmateLocatorSrc/filters/ElementFilter.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.js +4 -3
- package/lib/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.js.map +1 -1
- package/lib/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.js +5 -0
- package/lib/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.js.map +1 -1
- package/package.json +1 -1
- package/test/core/functional/locators/ancestorProperties.test.js +63 -0
- package/test/core/functional/locators/childProperties.test.js +48 -0
- package/test/core/functional/locators/descendantProperties.test.js +60 -0
- package/test/core/functional/locators/siblingProperties.test.js +52 -0
- package/test/reuse/ui5/date/pickRange.spec.js +3 -3
- package/test/reuse/ui5/userInteraction/clickTab.spec.js +1 -1
|
@@ -364,8 +364,10 @@ module.exports = {
|
|
|
364
364
|
}
|
|
365
365
|
// Public
|
|
366
366
|
filter(controls) {
|
|
367
|
-
|
|
368
|
-
|
|
367
|
+
const isEmpty = Array.isArray(this.elementProperties)
|
|
368
|
+
? this.elementProperties.length === 0
|
|
369
|
+
: Object.keys(this.elementProperties).length === 0;
|
|
370
|
+
if (isEmpty || controls.length === 0) {
|
|
369
371
|
return controls;
|
|
370
372
|
}
|
|
371
373
|
LocatorDebug.beginLog(this.constructor.name, controls.length);
|
|
@@ -374,7 +376,10 @@ module.exports = {
|
|
|
374
376
|
return filteredControls;
|
|
375
377
|
}
|
|
376
378
|
checkSingle(control) {
|
|
377
|
-
|
|
379
|
+
const isEmpty = Array.isArray(this.elementProperties)
|
|
380
|
+
? this.elementProperties.length === 0
|
|
381
|
+
: Object.keys(this.elementProperties).length === 0;
|
|
382
|
+
if (isEmpty) {
|
|
378
383
|
return true;
|
|
379
384
|
}
|
|
380
385
|
if (!control) {
|
|
@@ -391,6 +396,9 @@ module.exports = {
|
|
|
391
396
|
}
|
|
392
397
|
// Private
|
|
393
398
|
convertRawElementPropertiesToElementProperties(rawElementProperties) {
|
|
399
|
+
if (Array.isArray(rawElementProperties)) {
|
|
400
|
+
return rawElementProperties;
|
|
401
|
+
}
|
|
394
402
|
let elementProperties = { ...rawElementProperties };
|
|
395
403
|
if (typeof rawElementProperties?.mProperties === "object") {
|
|
396
404
|
elementProperties = {
|
|
@@ -403,16 +411,29 @@ module.exports = {
|
|
|
403
411
|
}
|
|
404
412
|
};
|
|
405
413
|
// src/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.ts
|
|
406
|
-
var AncestorFilter = class extends BaseFilter {
|
|
414
|
+
var AncestorFilter = class _AncestorFilter extends BaseFilter {
|
|
407
415
|
doCheckSingle(control) {
|
|
416
|
+
if (Array.isArray(this.elementProperties)) {
|
|
417
|
+
return this.elementProperties.every((props) => {
|
|
418
|
+
return this.filterFactory
|
|
419
|
+
.getInstance(_AncestorFilter, props)
|
|
420
|
+
.checkSingle(control);
|
|
421
|
+
});
|
|
422
|
+
}
|
|
408
423
|
const ancestors = UI5ControlHandler.getUI5Ancestors(control);
|
|
409
424
|
const elementFilter = this.filterFactory.getInstance(ElementFilter, this.elementProperties);
|
|
410
425
|
return ancestors.some((ancestor) => elementFilter.checkSingle(ancestor));
|
|
411
426
|
}
|
|
412
427
|
};
|
|
413
428
|
// src/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.ts
|
|
414
|
-
var DescendantFilter = class extends BaseFilter {
|
|
429
|
+
var DescendantFilter = class _DescendantFilter extends BaseFilter {
|
|
415
430
|
doCheckSingle(control) {
|
|
431
|
+
if (Array.isArray(this.elementProperties)) {
|
|
432
|
+
return this.elementProperties.every((props) => {
|
|
433
|
+
const filter = this.filterFactory.getInstance(_DescendantFilter, props);
|
|
434
|
+
return filter.checkSingle(control);
|
|
435
|
+
});
|
|
436
|
+
}
|
|
416
437
|
const parentElement = document.getElementById(control.getId?.());
|
|
417
438
|
if (!parentElement) {
|
|
418
439
|
return false;
|
|
@@ -425,8 +446,15 @@ module.exports = {
|
|
|
425
446
|
}
|
|
426
447
|
};
|
|
427
448
|
// src/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.ts
|
|
428
|
-
var SiblingFilter = class extends BaseFilter {
|
|
449
|
+
var SiblingFilter = class _SiblingFilter extends BaseFilter {
|
|
429
450
|
doCheckSingle(control) {
|
|
451
|
+
if (Array.isArray(this.elementProperties)) {
|
|
452
|
+
return this.elementProperties.every((props) => {
|
|
453
|
+
return this.filterFactory
|
|
454
|
+
.getInstance(_SiblingFilter, props)
|
|
455
|
+
.checkSingle(control);
|
|
456
|
+
});
|
|
457
|
+
}
|
|
430
458
|
const aSiblingControls = UI5ControlHandler.findSiblingControls(control);
|
|
431
459
|
const elementFilter = this.filterFactory.getInstance(ElementFilter, this.elementProperties);
|
|
432
460
|
return aSiblingControls.some((siblingControl) => elementFilter.checkSingle(siblingControl));
|
|
@@ -575,15 +603,23 @@ module.exports = {
|
|
|
575
603
|
// src/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.ts
|
|
576
604
|
var PropertiesFilter = class extends BaseFilter {
|
|
577
605
|
doCheckSingle(control) {
|
|
578
|
-
|
|
579
|
-
pass
|
|
580
|
-
pass &&=
|
|
606
|
+
const props = this.elementProperties;
|
|
607
|
+
let pass = MetadataComparator.compareMetadata(props, control);
|
|
608
|
+
pass &&= ElementPropertiesComparator.compareToProperties(props, control);
|
|
609
|
+
pass &&= DomPropertiesComparator.compareToDomProperties(props.domProperties, control);
|
|
581
610
|
return pass;
|
|
582
611
|
}
|
|
583
612
|
};
|
|
584
613
|
// src/scripts/locators/qmateLocatorSrc/filters/ChildFilter.ts
|
|
585
|
-
var ChildFilter = class extends BaseFilter {
|
|
614
|
+
var ChildFilter = class _ChildFilter extends BaseFilter {
|
|
586
615
|
doCheckSingle(control) {
|
|
616
|
+
if (Array.isArray(this.elementProperties)) {
|
|
617
|
+
return this.elementProperties.every((props) => {
|
|
618
|
+
return this.filterFactory
|
|
619
|
+
.getInstance(_ChildFilter, props)
|
|
620
|
+
.checkSingle(control);
|
|
621
|
+
});
|
|
622
|
+
}
|
|
587
623
|
const element = document.getElementById(control.getId());
|
|
588
624
|
if (!element) {
|
|
589
625
|
return false;
|
|
@@ -645,42 +681,45 @@ module.exports = {
|
|
|
645
681
|
var ElementFilter = class _ElementFilter extends BaseFilter {
|
|
646
682
|
doFiltering(controls) {
|
|
647
683
|
this.checkElementProperties();
|
|
684
|
+
const props = this.elementProperties;
|
|
648
685
|
let filteredControls = this.filterFactory
|
|
649
|
-
.getInstance(PropertiesFilter,
|
|
686
|
+
.getInstance(PropertiesFilter, props)
|
|
650
687
|
.filter(controls);
|
|
651
688
|
filteredControls = this.filterFactory
|
|
652
|
-
.getInstance(AncestorFilter,
|
|
689
|
+
.getInstance(AncestorFilter, props.ancestorProperties)
|
|
653
690
|
.filter(filteredControls);
|
|
654
691
|
filteredControls = this.filterFactory
|
|
655
|
-
.getInstance(DescendantFilter,
|
|
692
|
+
.getInstance(DescendantFilter, props.descendantProperties)
|
|
656
693
|
.filter(filteredControls);
|
|
657
694
|
filteredControls = this.filterFactory
|
|
658
|
-
.getInstance(SiblingFilter,
|
|
695
|
+
.getInstance(SiblingFilter, props.siblingProperties)
|
|
659
696
|
.filter(filteredControls);
|
|
660
697
|
return filteredControls;
|
|
661
698
|
}
|
|
662
699
|
doCheckSingle(control) {
|
|
663
700
|
this.checkElementProperties();
|
|
701
|
+
const props = this.elementProperties;
|
|
664
702
|
let pass = this.filterFactory
|
|
665
|
-
.getInstance(PropertiesFilter,
|
|
703
|
+
.getInstance(PropertiesFilter, props)
|
|
666
704
|
.checkSingle(control);
|
|
667
705
|
pass &&= this.filterFactory
|
|
668
|
-
.getInstance(AncestorFilter,
|
|
706
|
+
.getInstance(AncestorFilter, props.ancestorProperties)
|
|
669
707
|
.checkSingle(control);
|
|
670
708
|
pass &&= this.filterFactory
|
|
671
|
-
.getInstance(DescendantFilter,
|
|
709
|
+
.getInstance(DescendantFilter, props.descendantProperties)
|
|
672
710
|
.checkSingle(control);
|
|
673
711
|
pass &&= this.filterFactory
|
|
674
|
-
.getInstance(SiblingFilter,
|
|
712
|
+
.getInstance(SiblingFilter, props.siblingProperties)
|
|
675
713
|
.checkSingle(control);
|
|
676
714
|
return pass;
|
|
677
715
|
}
|
|
678
716
|
checkElementProperties() {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
717
|
+
const props = this.elementProperties;
|
|
718
|
+
if (props?.prevSiblingProperties ||
|
|
719
|
+
props?.nextSiblingProperties ||
|
|
720
|
+
props?.childProperties ||
|
|
721
|
+
props?.parentProperties) {
|
|
722
|
+
console.error(`The selector your provided ${JSON.stringify(props)} contains childProperties, parentProperties, prevSiblingProperties or nextSiblingProperties, please provide a valid selector without these properties`);
|
|
684
723
|
throw new Error("Nested properties can only be used for ancestorProperties, descendantProperties or siblingProperties.");
|
|
685
724
|
}
|
|
686
725
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qmateLocator.js","sourceRoot":"","sources":["../../../src/scripts/locators/qmateLocator.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qmateLocator.js","sourceRoot":"","sources":["../../../src/scripts/locators/qmateLocator.js"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,11 @@ const BaseFilter_1 = require("./BaseFilter");
|
|
|
6
6
|
const ElementFilter_1 = require("./ElementFilter");
|
|
7
7
|
class AncestorFilter extends BaseFilter_1.BaseFilter {
|
|
8
8
|
doCheckSingle(control) {
|
|
9
|
+
if (Array.isArray(this.elementProperties)) {
|
|
10
|
+
return this.elementProperties.every((props) => {
|
|
11
|
+
return this.filterFactory.getInstance(AncestorFilter, props).checkSingle(control);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
9
14
|
const ancestors = UI5ControlHandler_1.UI5ControlHandler.getUI5Ancestors(control);
|
|
10
15
|
const elementFilter = this.filterFactory.getInstance(ElementFilter_1.ElementFilter, this.elementProperties);
|
|
11
16
|
return ancestors.some((ancestor) => elementFilter.checkSingle(ancestor));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AncestorFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,cAAe,SAAQ,uBAAU;IACrC,aAAa,CAAC,OAAmB;QACtC,MAAM,SAAS,GAAG,qCAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"AncestorFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,cAAe,SAAQ,uBAAU;IACrC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,qCAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAXD,wCAWC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { FilterFactory } from "../utils/FilterFactory";
|
|
2
2
|
export declare abstract class BaseFilter {
|
|
3
|
-
elementProperties: ElementProperties;
|
|
3
|
+
elementProperties: ElementProperties | ElementProperties[];
|
|
4
4
|
filterFactory: FilterFactory;
|
|
5
5
|
results: Map<string, boolean>;
|
|
6
|
-
constructor(filterFactory: FilterFactory, rawElementProperties: ElementProperties | undefined);
|
|
6
|
+
constructor(filterFactory: FilterFactory, rawElementProperties: ElementProperties | ElementProperties[] | undefined);
|
|
7
7
|
filter(controls: UI5Control[]): UI5Control[];
|
|
8
8
|
checkSingle(control: UI5Control): boolean;
|
|
9
9
|
protected abstract doCheckSingle(control: UI5Control): boolean;
|
|
@@ -13,7 +13,8 @@ class BaseFilter {
|
|
|
13
13
|
}
|
|
14
14
|
// Public
|
|
15
15
|
filter(controls) {
|
|
16
|
-
|
|
16
|
+
const isEmpty = Array.isArray(this.elementProperties) ? this.elementProperties.length === 0 : Object.keys(this.elementProperties).length === 0;
|
|
17
|
+
if (isEmpty || controls.length === 0) {
|
|
17
18
|
return controls;
|
|
18
19
|
}
|
|
19
20
|
LocatorDebug_1.LocatorDebug.beginLog(this.constructor.name, controls.length);
|
|
@@ -22,7 +23,8 @@ class BaseFilter {
|
|
|
22
23
|
return filteredControls;
|
|
23
24
|
}
|
|
24
25
|
checkSingle(control) {
|
|
25
|
-
|
|
26
|
+
const isEmpty = Array.isArray(this.elementProperties) ? this.elementProperties.length === 0 : Object.keys(this.elementProperties).length === 0;
|
|
27
|
+
if (isEmpty) {
|
|
26
28
|
return true;
|
|
27
29
|
}
|
|
28
30
|
if (!control) {
|
|
@@ -39,6 +41,9 @@ class BaseFilter {
|
|
|
39
41
|
}
|
|
40
42
|
// Private
|
|
41
43
|
convertRawElementPropertiesToElementProperties(rawElementProperties) {
|
|
44
|
+
if (Array.isArray(rawElementProperties)) {
|
|
45
|
+
return rawElementProperties;
|
|
46
|
+
}
|
|
42
47
|
// needed for backward compatibility
|
|
43
48
|
let elementProperties = { ...rawElementProperties };
|
|
44
49
|
if (typeof rawElementProperties?.mProperties === "object") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/BaseFilter.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAsB,UAAU;IAC9B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BaseFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/BaseFilter.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAsB,UAAU;IAC9B,iBAAiB,CAA0C;IAC3D,aAAa,CAAgB;IAC7B,OAAO,CAAuB;IAE9B,YAAY,aAA4B,EAAE,oBAAyE;QACjH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,8CAA8C,CAAC,oBAAoB,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;IACF,MAAM,CAAC,QAAsB;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/I,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,2BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,2BAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEpE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEM,WAAW,CAAC,OAAmB;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/I,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAY,CAAC;IAChD,CAAC;IAKS,WAAW,CAAC,QAAsB;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;IACF,8CAA8C,CAAC,oBAAyE;QAC9H,IAAI,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACxC,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,oCAAoC;QACpC,IAAI,iBAAiB,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;QACpD,IAAI,OAAO,oBAAoB,EAAE,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1D,iBAAiB,GAAG;gBAClB,GAAG,oBAAoB;gBACvB,GAAG,oBAAoB,CAAC,WAAW;aACf,CAAC;YACvB,OAAO,iBAAiB,CAAC,WAAW,CAAC;QACvC,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF;AA9DD,gCA8DC"}
|
|
@@ -6,6 +6,11 @@ const BaseFilter_1 = require("./BaseFilter");
|
|
|
6
6
|
const ElementFilter_1 = require("./ElementFilter");
|
|
7
7
|
class ChildFilter extends BaseFilter_1.BaseFilter {
|
|
8
8
|
doCheckSingle(control) {
|
|
9
|
+
if (Array.isArray(this.elementProperties)) {
|
|
10
|
+
return this.elementProperties.every((props) => {
|
|
11
|
+
return this.filterFactory.getInstance(ChildFilter, props).checkSingle(control);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
9
14
|
const element = document.getElementById(control.getId());
|
|
10
15
|
if (!element) {
|
|
11
16
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ChildFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,WAAY,SAAQ,uBAAU;IAClC,aAAa,CAAC,OAAmB;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"ChildFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ChildFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,WAAY,SAAQ,uBAAU;IAClC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAfD,kCAeC"}
|
|
@@ -6,6 +6,12 @@ const BaseFilter_1 = require("./BaseFilter");
|
|
|
6
6
|
const ElementFilter_1 = require("./ElementFilter");
|
|
7
7
|
class DescendantFilter extends BaseFilter_1.BaseFilter {
|
|
8
8
|
doCheckSingle(control) {
|
|
9
|
+
if (Array.isArray(this.elementProperties)) {
|
|
10
|
+
return this.elementProperties.every((props) => {
|
|
11
|
+
const filter = this.filterFactory.getInstance(DescendantFilter, props);
|
|
12
|
+
return filter.checkSingle(control);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
9
15
|
const parentElement = document.getElementById(control.getId?.());
|
|
10
16
|
if (!parentElement) {
|
|
11
17
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DescendantFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpG,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,IAAI,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,UAAU,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QACpF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"DescendantFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpG,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,IAAI,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,UAAU,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QACpF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAnBD,4CAmBC"}
|
|
@@ -14,23 +14,26 @@ const FilterFactory_1 = require("../utils/FilterFactory");
|
|
|
14
14
|
class ElementFilter extends BaseFilter_1.BaseFilter {
|
|
15
15
|
doFiltering(controls) {
|
|
16
16
|
this.checkElementProperties();
|
|
17
|
-
|
|
18
|
-
filteredControls = this.filterFactory.getInstance(
|
|
19
|
-
filteredControls = this.filterFactory.getInstance(
|
|
20
|
-
filteredControls = this.filterFactory.getInstance(
|
|
17
|
+
const props = this.elementProperties;
|
|
18
|
+
let filteredControls = this.filterFactory.getInstance(PropertiesFilter_1.PropertiesFilter, props).filter(controls);
|
|
19
|
+
filteredControls = this.filterFactory.getInstance(AncestorFilter_1.AncestorFilter, props.ancestorProperties).filter(filteredControls);
|
|
20
|
+
filteredControls = this.filterFactory.getInstance(DescendantFilter_1.DescendantFilter, props.descendantProperties).filter(filteredControls);
|
|
21
|
+
filteredControls = this.filterFactory.getInstance(SiblingFilter_1.SiblingFilter, props.siblingProperties).filter(filteredControls);
|
|
21
22
|
return filteredControls;
|
|
22
23
|
}
|
|
23
24
|
doCheckSingle(control) {
|
|
24
25
|
this.checkElementProperties();
|
|
25
|
-
|
|
26
|
-
pass
|
|
27
|
-
pass &&= this.filterFactory.getInstance(
|
|
28
|
-
pass &&= this.filterFactory.getInstance(
|
|
26
|
+
const props = this.elementProperties;
|
|
27
|
+
let pass = this.filterFactory.getInstance(PropertiesFilter_1.PropertiesFilter, props).checkSingle(control);
|
|
28
|
+
pass &&= this.filterFactory.getInstance(AncestorFilter_1.AncestorFilter, props.ancestorProperties).checkSingle(control);
|
|
29
|
+
pass &&= this.filterFactory.getInstance(DescendantFilter_1.DescendantFilter, props.descendantProperties).checkSingle(control);
|
|
30
|
+
pass &&= this.filterFactory.getInstance(SiblingFilter_1.SiblingFilter, props.siblingProperties).checkSingle(control);
|
|
29
31
|
return pass;
|
|
30
32
|
}
|
|
31
33
|
checkElementProperties() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
const props = this.elementProperties;
|
|
35
|
+
if (props?.prevSiblingProperties || props?.nextSiblingProperties || props?.childProperties || props?.parentProperties) {
|
|
36
|
+
console.error(`The selector your provided ${JSON.stringify(props)} contains childProperties, parentProperties, prevSiblingProperties or nextSiblingProperties, please provide a valid selector without these properties`);
|
|
34
37
|
throw new Error("Nested properties can only be used for ancestorProperties, descendantProperties or siblingProperties.");
|
|
35
38
|
}
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ElementFilter.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,yDAAsD;AACtD,mDAAgD;AAChD,yDAAsD;AACtD,+CAA4C;AAC5C,iDAA8C;AAC9C,2DAAwD;AACxD,2DAAwD;AACxD,6CAA0C;AAC1C,0DAAuD;AAEvD,MAAa,aAAc,SAAQ,uBAAU;IACjC,WAAW,CAAC,QAAsB;QAC1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ElementFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ElementFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,10 @@ const MetadataComparator_1 = require("../comparators/MetadataComparator");
|
|
|
7
7
|
const BaseFilter_1 = require("./BaseFilter");
|
|
8
8
|
class PropertiesFilter extends BaseFilter_1.BaseFilter {
|
|
9
9
|
doCheckSingle(control) {
|
|
10
|
-
|
|
11
|
-
pass
|
|
12
|
-
pass &&=
|
|
10
|
+
const props = this.elementProperties;
|
|
11
|
+
let pass = MetadataComparator_1.MetadataComparator.compareMetadata(props, control);
|
|
12
|
+
pass &&= ElementPropertiesComparator_1.ElementPropertiesComparator.compareToProperties(props, control);
|
|
13
|
+
pass &&= DomPropertiesComparator_1.DomPropertiesComparator.compareToDomProperties(props.domProperties, control);
|
|
13
14
|
return pass;
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertiesFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.ts"],"names":[],"mappings":";;;AAAA,oFAAiF;AACjF,4FAAyF;AACzF,0EAAuE;AACvE,6CAA0C;AAE1C,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,IAAI,IAAI,GAAG,uCAAkB,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"PropertiesFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.ts"],"names":[],"mappings":";;;AAAA,oFAAiF;AACjF,4FAAyF;AACzF,0EAAuE;AACvE,6CAA0C;AAE1C,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAsC,CAAC;QAC1D,IAAI,IAAI,GAAG,uCAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,KAAK,yDAA2B,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,KAAK,iDAAuB,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AARD,4CAQC"}
|
|
@@ -6,6 +6,11 @@ const BaseFilter_1 = require("./BaseFilter");
|
|
|
6
6
|
const ElementFilter_1 = require("./ElementFilter");
|
|
7
7
|
class SiblingFilter extends BaseFilter_1.BaseFilter {
|
|
8
8
|
doCheckSingle(control) {
|
|
9
|
+
if (Array.isArray(this.elementProperties)) {
|
|
10
|
+
return this.elementProperties.every((props) => {
|
|
11
|
+
return this.filterFactory.getInstance(SiblingFilter, props).checkSingle(control);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
9
14
|
const aSiblingControls = UI5ControlHandler_1.UI5ControlHandler.findSiblingControls(control);
|
|
10
15
|
const elementFilter = this.filterFactory.getInstance(ElementFilter_1.ElementFilter, this.elementProperties);
|
|
11
16
|
return aSiblingControls.some((siblingControl) => elementFilter.checkSingle(siblingControl));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SiblingFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,aAAc,SAAQ,uBAAU;IACpC,aAAa,CAAC,OAAmB;QACtC,MAAM,gBAAgB,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"SiblingFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,aAAc,SAAQ,uBAAU;IACpC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,gBAAgB,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;AAXD,sCAWC"}
|
package/package.json
CHANGED
|
@@ -100,4 +100,67 @@ describe("webdriver.io page locator test", function () {
|
|
|
100
100
|
await expect(browser.uiControl(wrongSelectorWithoutElementProperties))
|
|
101
101
|
.rejects.toThrowError(/No visible elements found/);
|
|
102
102
|
});
|
|
103
|
+
|
|
104
|
+
it("should access element by elementProperties and multiple ancestorProperties as array - AND (happy case)", async function () {
|
|
105
|
+
await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
|
|
106
|
+
await handleCookiesConsent();
|
|
107
|
+
await util.browser.switchToIframe("[id='sampleFrame']");
|
|
108
|
+
|
|
109
|
+
// The Reject button lives inside both a sap.m.Toolbar and a sap.m.Page - both ancestors must exist
|
|
110
|
+
const selector = {
|
|
111
|
+
"elementProperties": {
|
|
112
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
113
|
+
"metadata": "sap.m.Button",
|
|
114
|
+
"text": "Reject"
|
|
115
|
+
},
|
|
116
|
+
"ancestorProperties": [
|
|
117
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Toolbar" },
|
|
118
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Page" }
|
|
119
|
+
]
|
|
120
|
+
};
|
|
121
|
+
const elem = await browser.uiControl(selector);
|
|
122
|
+
await expect(elem).toBeDisplayed();
|
|
123
|
+
await expect(elem).toBeClickable();
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
it("should fail when one entry of ancestorProperties array does not match - AND (unhappy case)", async function () {
|
|
127
|
+
await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
|
|
128
|
+
await handleCookiesConsent();
|
|
129
|
+
await util.browser.switchToIframe("[id='sampleFrame']");
|
|
130
|
+
|
|
131
|
+
// Second entry has a non-existent ancestor - AND logic means the whole selector fails
|
|
132
|
+
const selector = {
|
|
133
|
+
"elementProperties": {
|
|
134
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
135
|
+
"metadata": "sap.m.Button",
|
|
136
|
+
"text": "Reject"
|
|
137
|
+
},
|
|
138
|
+
"ancestorProperties": [
|
|
139
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Toolbar" },
|
|
140
|
+
{ "metadata": "sap.m.Table" }
|
|
141
|
+
]
|
|
142
|
+
};
|
|
143
|
+
await expect(browser.uiControl(selector, 0, 1000))
|
|
144
|
+
.rejects.toThrowError(/No visible elements found/);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it("should return multiple elements when multiple elements each satisfy array ancestorProperties - AND (multiple results)", async function () {
|
|
148
|
+
await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
|
|
149
|
+
await handleCookiesConsent();
|
|
150
|
+
await util.browser.switchToIframe("[id='sampleFrame']");
|
|
151
|
+
|
|
152
|
+
// All buttons inside a Toolbar are also inside a Page - both ancestor conditions satisfied by multiple buttons
|
|
153
|
+
const selector = {
|
|
154
|
+
"elementProperties": {
|
|
155
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
156
|
+
"metadata": "sap.m.Button"
|
|
157
|
+
},
|
|
158
|
+
"ancestorProperties": [
|
|
159
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Toolbar" },
|
|
160
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Page" }
|
|
161
|
+
]
|
|
162
|
+
};
|
|
163
|
+
const elems = await browser.uiControls(selector);
|
|
164
|
+
expect(elems.length).toBeGreaterThan(1);
|
|
165
|
+
});
|
|
103
166
|
});
|
|
@@ -39,4 +39,52 @@ describe("webdriver.io page locator test", function () {
|
|
|
39
39
|
await expect(browser.uiControl(wrongSelectorWithoutElementProperties))
|
|
40
40
|
.rejects.toThrowError(/No visible elements found/);
|
|
41
41
|
});
|
|
42
|
+
|
|
43
|
+
it("should access element by elementProperties and multiple childProperties as array - AND (happy case)", async function () {
|
|
44
|
+
// The toolbar has both a Default button and a Reject button as direct children - both must match
|
|
45
|
+
const selector = {
|
|
46
|
+
"elementProperties": {
|
|
47
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
48
|
+
"metadata": "sap.m.Toolbar"
|
|
49
|
+
},
|
|
50
|
+
"childProperties": [
|
|
51
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
|
|
52
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Reject" }
|
|
53
|
+
]
|
|
54
|
+
};
|
|
55
|
+
const elem = await browser.uiControl(selector);
|
|
56
|
+
await expect(elem).toBeDisplayed();
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("should fail when one entry of childProperties array does not match - AND (unhappy case)", async function () {
|
|
60
|
+
// Second entry has a non-existent child - AND logic means the whole selector fails
|
|
61
|
+
const selector = {
|
|
62
|
+
"elementProperties": {
|
|
63
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
64
|
+
"metadata": "sap.m.Toolbar"
|
|
65
|
+
},
|
|
66
|
+
"childProperties": [
|
|
67
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
|
|
68
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "this-button-does-not-exist" }
|
|
69
|
+
]
|
|
70
|
+
};
|
|
71
|
+
await expect(browser.uiControl(selector, 0, 1000))
|
|
72
|
+
.rejects.toThrowError(/No visible elements found/);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it("should return multiple elements when multiple parents each satisfy array childProperties - AND (multiple results)", async function () {
|
|
76
|
+
// Multiple Toolbars on the page each have both a Button and a ToolbarSpacer as direct children
|
|
77
|
+
const selector = {
|
|
78
|
+
"elementProperties": {
|
|
79
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
80
|
+
"metadata": "sap.m.Toolbar"
|
|
81
|
+
},
|
|
82
|
+
"childProperties": [
|
|
83
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button" },
|
|
84
|
+
{ "metadata": "sap.m.ToolbarSpacer" }
|
|
85
|
+
]
|
|
86
|
+
};
|
|
87
|
+
const elems = await browser.uiControls(selector);
|
|
88
|
+
expect(elems.length).toBeGreaterThan(1);
|
|
89
|
+
});
|
|
42
90
|
});
|
|
@@ -107,4 +107,64 @@ describe("webdriver.io page locator test", function () {
|
|
|
107
107
|
.rejects.toThrowError(/No visible elements found/);
|
|
108
108
|
});
|
|
109
109
|
|
|
110
|
+
it("should access element by elementProperties and multiple descendantProperties as array - AND (happy case)", async function () {
|
|
111
|
+
await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
|
|
112
|
+
await handleCookiesConsent();
|
|
113
|
+
await util.browser.switchToIframe("[id='sampleFrame']");
|
|
114
|
+
|
|
115
|
+
// The toolbar contains both a "Default" button and a "Reject" button as descendants - both must match
|
|
116
|
+
const selector = {
|
|
117
|
+
"elementProperties": {
|
|
118
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
119
|
+
"metadata": "sap.m.Toolbar"
|
|
120
|
+
},
|
|
121
|
+
"descendantProperties": [
|
|
122
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
|
|
123
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Reject" }
|
|
124
|
+
]
|
|
125
|
+
};
|
|
126
|
+
const elem = await browser.uiControl(selector);
|
|
127
|
+
await expect(elem).toBeDisplayed();
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it("should fail when one entry of descendantProperties array does not match - AND (unhappy case)", async function () {
|
|
131
|
+
await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
|
|
132
|
+
await handleCookiesConsent();
|
|
133
|
+
await util.browser.switchToIframe("[id='sampleFrame']");
|
|
134
|
+
|
|
135
|
+
// Second entry has a non-existent text - AND logic means the whole selector fails
|
|
136
|
+
const selector = {
|
|
137
|
+
"elementProperties": {
|
|
138
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
139
|
+
"metadata": "sap.m.Toolbar"
|
|
140
|
+
},
|
|
141
|
+
"descendantProperties": [
|
|
142
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
|
|
143
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "this-button-does-not-exist" }
|
|
144
|
+
]
|
|
145
|
+
};
|
|
146
|
+
await expect(browser.uiControl(selector, 0, 1000))
|
|
147
|
+
.rejects.toThrowError(/No visible elements found/);
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("should return multiple elements when multiple parents each satisfy array descendantProperties - AND (multiple results)", async function () {
|
|
151
|
+
await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
|
|
152
|
+
await handleCookiesConsent();
|
|
153
|
+
await util.browser.switchToIframe("[id='sampleFrame']");
|
|
154
|
+
|
|
155
|
+
// Multiple FlexItemData elements exist on this page (one per button).
|
|
156
|
+
// Using a single-entry array exercises the array code path and should return all FlexItemData with a Button descendant.
|
|
157
|
+
const selector = {
|
|
158
|
+
"elementProperties": {
|
|
159
|
+
"viewName": "sap.m.sample.Button.Page",
|
|
160
|
+
"metadata": "sap.m.FlexItemData"
|
|
161
|
+
},
|
|
162
|
+
"descendantProperties": [
|
|
163
|
+
{ "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button" }
|
|
164
|
+
]
|
|
165
|
+
};
|
|
166
|
+
const elems = await browser.uiControls(selector);
|
|
167
|
+
expect(elems.length).toBeGreaterThan(1);
|
|
168
|
+
});
|
|
169
|
+
|
|
110
170
|
});
|
|
@@ -112,6 +112,58 @@ describe("webdriver.io page locator test", function () {
|
|
|
112
112
|
};
|
|
113
113
|
await expect(browser.uiControl(wrongProperties)).rejects.toThrowError(/No visible elements found/);
|
|
114
114
|
});
|
|
115
|
+
|
|
116
|
+
it("should access element by elementProperties and multiple siblingProperties as array - AND (happy case)", async function () {
|
|
117
|
+
// The AC list item has CSA as a sibling, and also has other StandardListItem siblings - both conditions must match
|
|
118
|
+
const selector = {
|
|
119
|
+
"elementProperties": {
|
|
120
|
+
"viewName": "sap.ui.demo.cart.view.Home",
|
|
121
|
+
"metadata": "sap.m.StandardListItem",
|
|
122
|
+
"bindingContextPath": "/ProductCategories*'AC')"
|
|
123
|
+
},
|
|
124
|
+
"siblingProperties": [
|
|
125
|
+
{ "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'CSA')" },
|
|
126
|
+
{ "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem" }
|
|
127
|
+
]
|
|
128
|
+
};
|
|
129
|
+
const elem = await browser.uiControl(selector);
|
|
130
|
+
await expect(elem).toBeDisplayed();
|
|
131
|
+
await expect(elem).toBeClickable();
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
it("should fail when one entry of siblingProperties array does not match - AND (unhappy case)", async function () {
|
|
135
|
+
// Second entry points to a non-existent sibling - AND logic means the whole selector fails
|
|
136
|
+
const selector = {
|
|
137
|
+
"elementProperties": {
|
|
138
|
+
"viewName": "sap.ui.demo.cart.view.Home",
|
|
139
|
+
"metadata": "sap.m.StandardListItem",
|
|
140
|
+
"bindingContextPath": "/ProductCategories*'AC')"
|
|
141
|
+
},
|
|
142
|
+
"siblingProperties": [
|
|
143
|
+
{ "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'CSA')" },
|
|
144
|
+
{ "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'THIS-DOES-NOT-EXIST')" }
|
|
145
|
+
]
|
|
146
|
+
};
|
|
147
|
+
await expect(browser.uiControl(selector, 0, 1000))
|
|
148
|
+
.rejects.toThrowError(/No visible elements found/);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
it("should return multiple elements when multiple elements each satisfy array siblingProperties - AND (multiple results)", async function () {
|
|
152
|
+
// All category items (except AC and CSA themselves) have both AC and CSA as siblings - returns multiple items
|
|
153
|
+
const selector = {
|
|
154
|
+
"elementProperties": {
|
|
155
|
+
"viewName": "sap.ui.demo.cart.view.Home",
|
|
156
|
+
"metadata": "sap.m.StandardListItem"
|
|
157
|
+
},
|
|
158
|
+
"siblingProperties": [
|
|
159
|
+
{ "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'CSA')" },
|
|
160
|
+
{ "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'AC')" }
|
|
161
|
+
]
|
|
162
|
+
};
|
|
163
|
+
const elems = await browser.uiControls(selector);
|
|
164
|
+
expect(elems.length).toBeGreaterThan(1);
|
|
165
|
+
});
|
|
166
|
+
|
|
115
167
|
});
|
|
116
168
|
|
|
117
169
|
|
|
@@ -40,7 +40,7 @@ describe("date - pickRange - when DateRangeSelection do not have any value", fun
|
|
|
40
40
|
|
|
41
41
|
const startRange = getBorderOfRange(start);
|
|
42
42
|
const endRange = getBorderOfRange(end);
|
|
43
|
-
const rangeAsString = `${startRange}
|
|
43
|
+
const rangeAsString = `${startRange} – ${endRange}`;
|
|
44
44
|
|
|
45
45
|
common.assertion.expectEqual(arrivedRange, rangeAsString);
|
|
46
46
|
});
|
|
@@ -77,7 +77,7 @@ describe("date - pickRange - with index as 2", function () {
|
|
|
77
77
|
|
|
78
78
|
const startRange = getBorderOfRange(start);
|
|
79
79
|
const endRange = getBorderOfRange(end);
|
|
80
|
-
const rangeAsString = `${startRange}
|
|
80
|
+
const rangeAsString = `${startRange} – ${endRange}`;
|
|
81
81
|
|
|
82
82
|
common.assertion.expectEqual(arrivedRange, rangeAsString);
|
|
83
83
|
});
|
|
@@ -123,7 +123,7 @@ describe("date - pickRange - with icon as selector", function () {
|
|
|
123
123
|
|
|
124
124
|
const startRange = getBorderOfRange(start);
|
|
125
125
|
const endRange = getBorderOfRange(end);
|
|
126
|
-
const rangeAsString = `${startRange}
|
|
126
|
+
const rangeAsString = `${startRange} – ${endRange}`;
|
|
127
127
|
|
|
128
128
|
common.assertion.expectEqual(arrivedRange, rangeAsString);
|
|
129
129
|
});
|
|
@@ -58,7 +58,7 @@ describe("userInteraction - clickTab - multiple select values", function () {
|
|
|
58
58
|
title: "Summary"
|
|
59
59
|
},
|
|
60
60
|
ancestorProperties: {
|
|
61
|
-
metadata: "sap.
|
|
61
|
+
metadata: "sap.ui.documentation.ObjectPageSection",
|
|
62
62
|
viewName: "sap.ui.documentation.sdk.view.SubApiDetail",
|
|
63
63
|
title: "Events"
|
|
64
64
|
}
|