@appium/universal-xml-plugin 1.0.0-beta.4 → 1.0.3
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/README.md +1 -1
- package/build/lib/logger.js +3 -3
- package/build/lib/plugin.js +53 -76
- package/build/lib/source.js +1 -1
- package/build/lib/xpath.js +2 -2
- package/build/test/unit/plugin-specs.js +36 -53
- package/build/test/unit/source-specs.js +11 -11
- package/build/test/unit/xpath-specs.js +13 -13
- package/build/tsconfig.tsbuildinfo +1 -0
- package/lib/logger.js +1 -1
- package/lib/plugin.js +2 -10
- package/package.json +8 -8
- package/test/unit/plugin-specs.js +6 -6
- package/tsconfig.json +1 -5
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ No special action is needed to make the features available in the various Appium
|
|
|
19
19
|
The plugin will not be active unless turned on when invoking the Appium server:
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
appium --plugins=universal-xml
|
|
22
|
+
appium --use-plugins=universal-xml
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Usage
|
package/build/lib/logger.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const log =
|
|
3
|
+
const support_1 = require("@appium/support");
|
|
4
|
+
const log = support_1.logger.getLogger('UniversalXMLPlugin');
|
|
5
5
|
exports.default = log;
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUF5QztBQUN6QyxNQUFNLEdBQUcsR0FBRyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ25ELGtCQUFlLEdBQUcsQ0FBQyJ9
|
package/build/lib/plugin.js
CHANGED
|
@@ -1,101 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable no-case-declarations */
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
5
|
};
|
|
15
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
7
|
exports.UniversalXMLPlugin = void 0;
|
|
17
8
|
const base_plugin_1 = __importDefault(require("@appium/base-plugin"));
|
|
18
|
-
const
|
|
9
|
+
const base_driver_1 = require("@appium/base-driver");
|
|
19
10
|
const source_1 = require("./source");
|
|
20
11
|
const xpath_1 = require("./xpath");
|
|
21
12
|
const logger_1 = __importDefault(require("./logger"));
|
|
22
|
-
const SOURCE_URL_RE = new RegExp('/session/[^/]+/source');
|
|
23
13
|
class UniversalXMLPlugin extends base_plugin_1.default {
|
|
24
14
|
constructor() {
|
|
25
15
|
super(...arguments);
|
|
26
16
|
this.commands = ['getPageSource', 'findElement', 'findElements', 'findElementFromElement',
|
|
27
17
|
'findElementsFromElement'];
|
|
28
18
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
async getPageSource(next, driver, sessId, addIndexPath = false) {
|
|
20
|
+
const source = next ? await next() : await driver.getPageSource();
|
|
21
|
+
const metadata = {};
|
|
22
|
+
const { platformName } = driver.caps;
|
|
23
|
+
if (platformName.toLowerCase() === 'android') {
|
|
24
|
+
metadata.appPackage = driver.opts.appPackage;
|
|
25
|
+
}
|
|
26
|
+
const { xml, unknowns } = (0, source_1.transformSourceXml)(source, platformName.toLowerCase(), { metadata, addIndexPath });
|
|
27
|
+
if (unknowns.nodes.length) {
|
|
28
|
+
logger_1.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` +
|
|
29
|
+
`tag name(s) that it didn't know about. These should be ` +
|
|
30
|
+
`reported to improve the quality of the plugin: ` +
|
|
31
|
+
unknowns.nodes.join(', '));
|
|
32
|
+
}
|
|
33
|
+
if (unknowns.attrs.length) {
|
|
34
|
+
logger_1.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` +
|
|
35
|
+
`that it didn't know about. These should be reported to ` +
|
|
36
|
+
`improve the quality of the plugin: ` +
|
|
37
|
+
unknowns.attrs.join(', '));
|
|
38
|
+
}
|
|
39
|
+
return xml;
|
|
33
40
|
}
|
|
34
|
-
|
|
35
|
-
return
|
|
36
|
-
const source = yield driver.getPageSource();
|
|
37
|
-
const metadata = {};
|
|
38
|
-
const { platformName } = driver.caps;
|
|
39
|
-
if (platformName.toLowerCase() === 'android') {
|
|
40
|
-
metadata.appPackage = driver.opts.appPackage;
|
|
41
|
-
}
|
|
42
|
-
const { xml, unknowns } = source_1.transformSourceXml(source, platformName.toLowerCase(), { metadata, addIndexPath });
|
|
43
|
-
if (unknowns.nodes.length) {
|
|
44
|
-
logger_1.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` +
|
|
45
|
-
`tag name(s) that it didn't know about. These should be ` +
|
|
46
|
-
`reported to improve the quality of the plugin: ` +
|
|
47
|
-
unknowns.nodes.join(', '));
|
|
48
|
-
}
|
|
49
|
-
if (unknowns.attrs.length) {
|
|
50
|
-
logger_1.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` +
|
|
51
|
-
`that it didn't know about. These should be reported to ` +
|
|
52
|
-
`improve the quality of the plugin: ` +
|
|
53
|
-
unknowns.attrs.join(', '));
|
|
54
|
-
}
|
|
55
|
-
return xml;
|
|
56
|
-
});
|
|
41
|
+
async findElement(...args) {
|
|
42
|
+
return await this._find(false, ...args);
|
|
57
43
|
}
|
|
58
|
-
|
|
59
|
-
return
|
|
60
|
-
return yield this._find(false, ...args);
|
|
61
|
-
});
|
|
44
|
+
async findElements(...args) {
|
|
45
|
+
return await this._find(true, ...args);
|
|
62
46
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// matched, so do the appropriate thing based on element vs elements
|
|
78
|
-
if (newSelector === null) {
|
|
79
|
-
logger_1.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` +
|
|
80
|
-
`element does not exist or there was an error in translation`);
|
|
81
|
-
if (multiple) {
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
throw new appium_base_driver_1.errors.NoSuchElementError();
|
|
85
|
-
}
|
|
86
|
-
if (platformName.toLowerCase() === 'ios') {
|
|
87
|
-
// with the XCUITest driver, the <AppiumAUT> wrapper element is present in the source but is
|
|
88
|
-
// not present in the source considered by WDA, so our index path based xpath queries will
|
|
89
|
-
// not work with WDA as-is. We need to remove the first path segment.
|
|
90
|
-
newSelector = newSelector.replace(/^\/\*\[1\]/, '');
|
|
47
|
+
async _find(multiple, next, driver, strategy, selector) {
|
|
48
|
+
const { platformName } = driver.caps;
|
|
49
|
+
if (strategy.toLowerCase() !== 'xpath') {
|
|
50
|
+
return await next();
|
|
51
|
+
}
|
|
52
|
+
const xml = await this.getPageSource(null, driver, null, true);
|
|
53
|
+
let newSelector = (0, xpath_1.transformQuery)(selector, xml, multiple);
|
|
54
|
+
// if the selector was not able to be transformed, that means no elements were found that
|
|
55
|
+
// matched, so do the appropriate thing based on element vs elements
|
|
56
|
+
if (newSelector === null) {
|
|
57
|
+
logger_1.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` +
|
|
58
|
+
`element does not exist or there was an error in translation`);
|
|
59
|
+
if (multiple) {
|
|
60
|
+
return [];
|
|
91
61
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
62
|
+
throw new base_driver_1.errors.NoSuchElementError();
|
|
63
|
+
}
|
|
64
|
+
if (platformName.toLowerCase() === 'ios') {
|
|
65
|
+
// with the XCUITest driver, the <AppiumAUT> wrapper element is present in the source but is
|
|
66
|
+
// not present in the source considered by WDA, so our index path based xpath queries will
|
|
67
|
+
// not work with WDA as-is. We need to remove the first path segment.
|
|
68
|
+
newSelector = newSelector.replace(/^\/\*\[1\]/, '');
|
|
69
|
+
}
|
|
70
|
+
logger_1.default.info(`Selector was translated to: ${newSelector}`);
|
|
71
|
+
// otherwise just run the transformed query!
|
|
72
|
+
const finder = multiple ? 'findElements' : 'findElement';
|
|
73
|
+
return await driver[finder](strategy, newSelector);
|
|
97
74
|
}
|
|
98
75
|
}
|
|
99
76
|
exports.default = UniversalXMLPlugin;
|
|
100
77
|
exports.UniversalXMLPlugin = UniversalXMLPlugin;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsdWdpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDOzs7Ozs7QUFFekMsc0VBQTZDO0FBQzdDLHFEQUE2QztBQUM3QyxxQ0FBOEM7QUFDOUMsbUNBQXlDO0FBQ3pDLHNEQUEyQjtBQUUzQixNQUFxQixrQkFBbUIsU0FBUSxxQkFBVTtJQUExRDs7UUFFRSxhQUFRLEdBQUcsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSx3QkFBd0I7WUFDbEYseUJBQXlCLENBQUMsQ0FBQztJQWtFL0IsQ0FBQztJQWhFQyxLQUFLLENBQUMsYUFBYSxDQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksR0FBRyxLQUFLO1FBQzdELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ25DLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUM1QyxRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUMsR0FBRyxJQUFBLDJCQUFrQixFQUFDLE1BQU0sRUFDL0MsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixnQkFBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQWE7Z0JBQzFELHlEQUF5RDtnQkFDekQsaURBQWlEO2dCQUNqRCxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixnQkFBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLGNBQWM7Z0JBQzNELHlEQUF5RDtnQkFDekQscUNBQXFDO2dCQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBRSxHQUFHLElBQUk7UUFDeEIsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUUsR0FBRyxJQUFJO1FBQ3pCLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRO1FBQ3JELE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ25DLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRTtZQUN0QyxPQUFPLE1BQU0sSUFBSSxFQUFFLENBQUM7U0FDckI7UUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsSUFBSSxXQUFXLEdBQUcsSUFBQSxzQkFBYyxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFMUQseUZBQXlGO1FBQ3pGLG9FQUFvRTtRQUNwRSxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDeEIsZ0JBQUcsQ0FBQyxJQUFJLENBQUMsaUZBQWlGO2dCQUNqRiw2REFBNkQsQ0FBQyxDQUFDO1lBQ3hFLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFDRCxNQUFNLElBQUksb0JBQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFO1lBQ3hDLDRGQUE0RjtZQUM1RiwwRkFBMEY7WUFDMUYscUVBQXFFO1lBQ3JFLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNyRDtRQUNELGdCQUFHLENBQUMsSUFBSSxDQUFDLCtCQUErQixXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXZELDRDQUE0QztRQUM1QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ3pELE9BQU8sTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FFRjtBQXJFRCxxQ0FxRUM7QUFFUSxnREFBa0IifQ==
|
package/build/lib/source.js
CHANGED
|
@@ -167,4 +167,4 @@ function transformAttrs(nodeObj, attrs, platform) {
|
|
|
167
167
|
return unknownAttrs;
|
|
168
168
|
}
|
|
169
169
|
exports.transformAttrs = transformAttrs;
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3NvdXJjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLG1FQUFvRDtBQUNwRCwwREFBa0M7QUFDbEMseUNBQW9EO0FBQ3BELGtFQUF3QztBQUV4QyxNQUFNLFVBQVUsR0FBRztJQUNqQixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0NBQ2hCLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRztJQUNmLGdCQUFnQixFQUFFLEtBQUs7SUFDdkIsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDbkIsUUFBQSxlQUFlLEdBQUcsR0FBRyxtQkFBVyxXQUFXLENBQUM7QUFDNUMsUUFBQSxVQUFVLEdBQUcsR0FBRyxtQkFBVyxPQUFPLENBQUM7QUFFaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLG1CQUFXLENBQUM7QUFDeEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRWpDLFNBQWdCLGtCQUFrQixDQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBQyxRQUFRLEdBQUcsRUFBRSxFQUFFLFlBQVksR0FBRyxLQUFLLEVBQUMsR0FBRyxFQUFFO0lBQzlGLCtGQUErRjtJQUMvRiw0REFBNEQ7SUFDNUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDaEUsTUFBTSxNQUFNLEdBQUcseUJBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFVBQVUs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
|
package/build/lib/xpath.js
CHANGED
|
@@ -5,7 +5,7 @@ const xpath_1 = require("xpath");
|
|
|
5
5
|
const xmldom_1 = require("xmldom");
|
|
6
6
|
function runQuery(query, xmlStr) {
|
|
7
7
|
const dom = new xmldom_1.DOMParser().parseFromString(xmlStr);
|
|
8
|
-
const nodes = xpath_1.select(query, dom);
|
|
8
|
+
const nodes = (0, xpath_1.select)(query, dom);
|
|
9
9
|
return nodes;
|
|
10
10
|
}
|
|
11
11
|
exports.runQuery = runQuery;
|
|
@@ -45,4 +45,4 @@ function getNodeAttrVal(node, attr) {
|
|
|
45
45
|
return attrObjs[0].value;
|
|
46
46
|
}
|
|
47
47
|
exports.getNodeAttrVal = getNodeAttrVal;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIveHBhdGguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQTZDO0FBQzdDLG1DQUFtQztBQUVuQyxTQUFnQixRQUFRLENBQUUsS0FBSyxFQUFFLE1BQU07SUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxrQkFBUyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUEsY0FBVSxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFKRCw0QkFJQztBQUVELFNBQWdCLGNBQWMsQ0FBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVE7SUFDckQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRCwwREFBMEQ7UUFDMUQsSUFBSSxRQUFRLEdBQUcsU0FBUzthQUNyQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO2FBQ2hELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUI7YUFDaEMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsT0FBTyxLQUFLLFVBQVUsR0FBRyxDQUFDO1FBQzVCLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFFMUIsaUZBQWlGO1FBQ2pGLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztJQUN2QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDckIsSUFBSSxRQUFRLEVBQUU7WUFDWixXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0wsV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3QjtLQUNGO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQTVCRCx3Q0E0QkM7QUFFRCxTQUFnQixjQUFjLENBQUUsSUFBSSxFQUFFLElBQUk7SUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ25GLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLElBQUksK0JBQStCLENBQUMsQ0FBQztLQUM3RjtJQUNELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUMzQixDQUFDO0FBTkQsd0NBTUMifQ==
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -15,62 +6,54 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
6
|
const chai_1 = __importDefault(require("chai"));
|
|
16
7
|
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
17
8
|
const index_1 = __importDefault(require("../../index"));
|
|
18
|
-
const
|
|
9
|
+
const base_driver_1 = __importDefault(require("@appium/base-driver"));
|
|
19
10
|
const fixtures_1 = require("../fixtures");
|
|
20
11
|
const xpath_1 = require("../../lib/xpath");
|
|
21
12
|
chai_1.default.use(chai_as_promised_1.default);
|
|
22
13
|
chai_1.default.should();
|
|
23
14
|
describe('UniversalXMLPlugin', function () {
|
|
24
|
-
|
|
15
|
+
let next;
|
|
25
16
|
const p = new index_1.default();
|
|
26
17
|
describe('getPageSource', function () {
|
|
27
|
-
const driver = new
|
|
28
|
-
it('should transform page source for ios', function () {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
yield p.getPageSource(next, driver).should.eventually.eql(fixtures_1.XML_IOS_TRANSFORMED);
|
|
33
|
-
});
|
|
18
|
+
const driver = new base_driver_1.default();
|
|
19
|
+
it('should transform page source for ios', async function () {
|
|
20
|
+
next = driver.getPageSource = () => fixtures_1.XML_IOS;
|
|
21
|
+
driver.caps = { platformName: 'iOS' };
|
|
22
|
+
await p.getPageSource(next, driver).should.eventually.eql(fixtures_1.XML_IOS_TRANSFORMED);
|
|
34
23
|
});
|
|
35
|
-
it('should transform page source for android', function () {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
yield p.getPageSource(next, driver).should.eventually.eql(fixtures_1.XML_ANDROID_TRANSFORMED);
|
|
41
|
-
});
|
|
24
|
+
it('should transform page source for android', async function () {
|
|
25
|
+
next = driver.getPageSourcce = () => fixtures_1.XML_ANDROID;
|
|
26
|
+
driver.caps = { platformName: 'Android' };
|
|
27
|
+
driver.opts = { appPackage: 'io.cloudgrey.the_app' };
|
|
28
|
+
await p.getPageSource(next, driver).should.eventually.eql(fixtures_1.XML_ANDROID_TRANSFORMED);
|
|
42
29
|
});
|
|
43
30
|
});
|
|
44
31
|
describe('findElement(s)', function () {
|
|
45
|
-
const driver = new
|
|
46
|
-
it('should turn an xpath query into another query run on the original ios source', function () {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
node.nodeName.should.eql('XCUIElementTypeTextField');
|
|
58
|
-
});
|
|
32
|
+
const driver = new base_driver_1.default();
|
|
33
|
+
it('should turn an xpath query into another query run on the original ios source', async function () {
|
|
34
|
+
next = driver.getPageSource = () => fixtures_1.XML_IOS;
|
|
35
|
+
driver.caps = { platformName: 'iOS' };
|
|
36
|
+
// mock out the findElement function to just return an xml node from the fixture
|
|
37
|
+
driver.findElement = (strategy, selector) => {
|
|
38
|
+
const nodes = (0, xpath_1.runQuery)(selector, fixtures_1.XML_IOS.replace(/<\/?AppiumAUT>/, ''));
|
|
39
|
+
return nodes[0];
|
|
40
|
+
};
|
|
41
|
+
const node = await p.findElement(next, driver, 'xpath', '//TextInput[@axId="username"]');
|
|
42
|
+
(0, xpath_1.getNodeAttrVal)(node, 'value').should.eql('alice');
|
|
43
|
+
node.nodeName.should.eql('XCUIElementTypeTextField');
|
|
59
44
|
});
|
|
60
|
-
it('should turn an xpath query into another query run on the original android source', function () {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
node.nodeName.should.eql('android.widget.EditText');
|
|
72
|
-
});
|
|
45
|
+
it('should turn an xpath query into another query run on the original android source', async function () {
|
|
46
|
+
next = driver.getPageSource = () => fixtures_1.XML_ANDROID;
|
|
47
|
+
driver.caps = { platformName: 'Android' };
|
|
48
|
+
driver.opts = { appPackage: 'io.cloudgrey.the_app' };
|
|
49
|
+
driver.findElement = (strategy, selector) => {
|
|
50
|
+
const nodes = (0, xpath_1.runQuery)(selector, fixtures_1.XML_ANDROID);
|
|
51
|
+
return nodes[0];
|
|
52
|
+
};
|
|
53
|
+
const node = await p.findElement(next, driver, 'xpath', '//TextInput[@axId="username"]');
|
|
54
|
+
(0, xpath_1.getNodeAttrVal)(node, 'content-desc').should.eql('username');
|
|
55
|
+
node.nodeName.should.eql('android.widget.EditText');
|
|
73
56
|
});
|
|
74
57
|
});
|
|
75
58
|
});
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3BsdWdpbi1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qix3RUFBOEM7QUFDOUMsd0RBQTZDO0FBQzdDLHNFQUE2QztBQUM3QywwQ0FBaUc7QUFDakcsMkNBQTJEO0FBRTNELGNBQUksQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUVkLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixJQUFJLElBQUksQ0FBQztJQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBa0IsRUFBRSxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxlQUFlLEVBQUU7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBVSxFQUFFLENBQUM7UUFDaEMsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEtBQUs7WUFDOUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQU8sQ0FBQztZQUM1QyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsOEJBQW1CLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLO1lBQ2xELElBQUksR0FBRyxNQUFNLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLHNCQUFXLENBQUM7WUFDakQsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUMsVUFBVSxF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
|
|
@@ -10,19 +10,19 @@ chai_1.default.should();
|
|
|
10
10
|
describe('source functions', function () {
|
|
11
11
|
describe('transformSourceXml', function () {
|
|
12
12
|
it('should transform an xml doc based on platform', function () {
|
|
13
|
-
const { xml, unknowns: { nodes, attrs } } = source_1.transformSourceXml(fixtures_1.XML_IOS, 'ios');
|
|
13
|
+
const { xml, unknowns: { nodes, attrs } } = (0, source_1.transformSourceXml)(fixtures_1.XML_IOS, 'ios');
|
|
14
14
|
xml.should.eql(fixtures_1.XML_IOS_TRANSFORMED);
|
|
15
15
|
nodes.should.eql([]);
|
|
16
16
|
attrs.should.eql([]);
|
|
17
17
|
});
|
|
18
18
|
it('should transform an xml doc and include index path', function () {
|
|
19
|
-
const { xml, unknowns: { nodes, attrs } } = source_1.transformSourceXml(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
19
|
+
const { xml, unknowns: { nodes, attrs } } = (0, source_1.transformSourceXml)(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
20
20
|
xml.should.eql(fixtures_1.XML_IOS_TRANSFORMED_INDEX_PATH);
|
|
21
21
|
nodes.should.eql([]);
|
|
22
22
|
attrs.should.eql([]);
|
|
23
23
|
});
|
|
24
24
|
it('should transform an xml doc and return any unknown nodes or attrs', function () {
|
|
25
|
-
const { xml, unknowns: { nodes, attrs } } = source_1.transformSourceXml(fixtures_1.XML_IOS_EDGE, 'ios');
|
|
25
|
+
const { xml, unknowns: { nodes, attrs } } = (0, source_1.transformSourceXml)(fixtures_1.XML_IOS_EDGE, 'ios');
|
|
26
26
|
xml.should.eql(fixtures_1.XML_IOS_EDGE_TRANSFORMED);
|
|
27
27
|
nodes.should.eql(['SomeRandoElement']);
|
|
28
28
|
attrs.should.eql(['oddAttribute']);
|
|
@@ -32,19 +32,19 @@ describe('source functions', function () {
|
|
|
32
32
|
it('should loop through child nodes of an object and transform them based on platform', function () {
|
|
33
33
|
const node = { XCUIElementTypeIcon: [{}], XCUIElementTypeKey: [{}], XCUIElementTypeTab: [{}] };
|
|
34
34
|
const metadata = {};
|
|
35
|
-
source_1.transformChildNodes(node, Object.keys(node), 'ios', metadata).should.eql({ nodes: [], attrs: [] });
|
|
35
|
+
(0, source_1.transformChildNodes)(node, Object.keys(node), 'ios', metadata).should.eql({ nodes: [], attrs: [] });
|
|
36
36
|
node.should.eql({ Button: [{}, {}], Icon: [{}] });
|
|
37
37
|
});
|
|
38
38
|
it('should leave unknown nodes intact and add them to unknowns list', function () {
|
|
39
39
|
const node = { XCUIElementTypeIcon: [{}], UnknownThingo: [{}], XCUIElementTypeTab: [{}] };
|
|
40
40
|
const metadata = {};
|
|
41
|
-
source_1.transformChildNodes(node, Object.keys(node), 'ios', metadata).should.eql({ nodes: ['UnknownThingo'], attrs: [] });
|
|
41
|
+
(0, source_1.transformChildNodes)(node, Object.keys(node), 'ios', metadata).should.eql({ nodes: ['UnknownThingo'], attrs: [] });
|
|
42
42
|
node.should.eql({ Button: [{}], UnknownThingo: [{}], Icon: [{}] });
|
|
43
43
|
});
|
|
44
44
|
it('should leave nodes for other platforms intact and add them to unknowns list', function () {
|
|
45
45
|
const node = { XCUIElementTypeIcon: [{}], 'android.widget.EditText': [{}], XCUIElementTypeTab: [{}] };
|
|
46
46
|
const metadata = {};
|
|
47
|
-
source_1.transformChildNodes(node, Object.keys(node), 'ios', metadata).should.eql({ nodes: ['android.widget.EditText'], attrs: [] });
|
|
47
|
+
(0, source_1.transformChildNodes)(node, Object.keys(node), 'ios', metadata).should.eql({ nodes: ['android.widget.EditText'], attrs: [] });
|
|
48
48
|
node.should.eql({ Button: [{}], 'android.widget.EditText': [{}], Icon: [{}] });
|
|
49
49
|
});
|
|
50
50
|
});
|
|
@@ -52,31 +52,31 @@ describe('source functions', function () {
|
|
|
52
52
|
it('should remove attributes in the REMOVE_ATTRS list', function () {
|
|
53
53
|
const obj = { '@_type': 'foo', '@_package': 'yes', '@_class': 'lol' };
|
|
54
54
|
const attrs = Object.keys(obj);
|
|
55
|
-
const unknowns = source_1.transformAttrs(obj, attrs, 'ios');
|
|
55
|
+
const unknowns = (0, source_1.transformAttrs)(obj, attrs, 'ios');
|
|
56
56
|
obj.should.eql({});
|
|
57
57
|
unknowns.should.eql([]);
|
|
58
58
|
});
|
|
59
59
|
it('should translate attributes for the platform', function () {
|
|
60
60
|
const obj = { '@_type': 'foo', '@_resource-id': 'someId' };
|
|
61
61
|
const attrs = Object.keys(obj);
|
|
62
|
-
const unknowns = source_1.transformAttrs(obj, attrs, 'android');
|
|
62
|
+
const unknowns = (0, source_1.transformAttrs)(obj, attrs, 'android');
|
|
63
63
|
obj.should.eql({ '@_id': 'someId' });
|
|
64
64
|
unknowns.should.eql([]);
|
|
65
65
|
});
|
|
66
66
|
it('should not translate unknown attributes and return them in the unknowns list', function () {
|
|
67
67
|
const obj = { '@_type': 'foo', '@_resource-id': 'someId', '@_rando': 'lorian' };
|
|
68
68
|
const attrs = Object.keys(obj);
|
|
69
|
-
const unknowns = source_1.transformAttrs(obj, attrs, 'android');
|
|
69
|
+
const unknowns = (0, source_1.transformAttrs)(obj, attrs, 'android');
|
|
70
70
|
obj.should.eql({ '@_id': 'someId', '@_rando': 'lorian' });
|
|
71
71
|
unknowns.should.eql(['rando']);
|
|
72
72
|
});
|
|
73
73
|
it('should not translate attributes for a different platform', function () {
|
|
74
74
|
const obj = { '@_type': 'foo', '@_resource-id': 'someId' };
|
|
75
75
|
const attrs = Object.keys(obj);
|
|
76
|
-
const unknowns = source_1.transformAttrs(obj, attrs, 'ios');
|
|
76
|
+
const unknowns = (0, source_1.transformAttrs)(obj, attrs, 'ios');
|
|
77
77
|
obj.should.eql({ '@_resource-id': 'someId' });
|
|
78
78
|
unknowns.should.eql(['resource-id']);
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXNwZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3NvdXJjZS1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QiwwQ0FDcUU7QUFDckUsNkNBQTJGO0FBRTNGLGNBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUVkLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtJQUMzQixRQUFRLENBQUMsb0JBQW9CLEVBQUU7UUFDN0IsRUFBRSxDQUFDLCtDQUErQyxFQUFFO1lBQ2xELE1BQU0sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDLEdBQUcsSUFBQSwyQkFBa0IsRUFBQyxrQkFBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLDhCQUFtQixDQUFDLENBQUM7WUFDcEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsb0RBQW9ELEVBQUU7WUFDdkQsTUFBTSxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUMsR0FBRyxJQUFBLDJCQUFrQixFQUFDLGtCQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDakcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMseUNBQThCLENBQUMsQ0FBQztZQUMvQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztR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
|
|
@@ -11,36 +11,36 @@ const should = chai_1.default.should();
|
|
|
11
11
|
describe('xpath functions', function () {
|
|
12
12
|
describe('runQuery', function () {
|
|
13
13
|
it('should run an xpath query on an XML string and return nodes', function () {
|
|
14
|
-
xpath_1.runQuery('//*', fixtures_1.XML_IOS).should.have.length(31);
|
|
15
|
-
xpath_1.runQuery('//XCUIElementTypeTextField', fixtures_1.XML_IOS).should.have.length(1);
|
|
14
|
+
(0, xpath_1.runQuery)('//*', fixtures_1.XML_IOS).should.have.length(31);
|
|
15
|
+
(0, xpath_1.runQuery)('//XCUIElementTypeTextField', fixtures_1.XML_IOS).should.have.length(1);
|
|
16
16
|
});
|
|
17
17
|
});
|
|
18
18
|
describe('transformQuery', function () {
|
|
19
19
|
it('should transform a query into a single new query', function () {
|
|
20
|
-
const { xml } = source_1.transformSourceXml(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
21
|
-
xpath_1.transformQuery('//TextInput', xml, false)
|
|
20
|
+
const { xml } = (0, source_1.transformSourceXml)(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
21
|
+
(0, xpath_1.transformQuery)('//TextInput', xml, false)
|
|
22
22
|
.should.eql('/*[1]/*[1]/*[1]/*[1]/*[2]/*[1]/*[1]/*[1]/*[1]/*[1]/*[1]/*[2]/*[1]/*[1]/*[1]');
|
|
23
23
|
});
|
|
24
24
|
it('should transform a query into a multiple new queries if asked', function () {
|
|
25
|
-
const { xml } = source_1.transformSourceXml(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
26
|
-
xpath_1.transformQuery('//Window', xml, true)
|
|
25
|
+
const { xml } = (0, source_1.transformSourceXml)(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
26
|
+
(0, xpath_1.transformQuery)('//Window', xml, true)
|
|
27
27
|
.split('|')
|
|
28
28
|
.should.have.length(2);
|
|
29
29
|
});
|
|
30
30
|
it('should return null for queries that dont find anything', function () {
|
|
31
|
-
const { xml } = source_1.transformSourceXml(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
32
|
-
should.not.exist(xpath_1.transformQuery('//blah', xml, false));
|
|
31
|
+
const { xml } = (0, source_1.transformSourceXml)(fixtures_1.XML_IOS, 'ios', { addIndexPath: true });
|
|
32
|
+
should.not.exist((0, xpath_1.transformQuery)('//blah', xml, false));
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
describe('getNodeAttrVal', function () {
|
|
36
36
|
it('should get the attribute for a node', function () {
|
|
37
|
-
const node = xpath_1.runQuery('//XCUIElementTypeTextField', fixtures_1.XML_IOS)[0];
|
|
38
|
-
xpath_1.getNodeAttrVal(node, 'name').should.eql('username');
|
|
37
|
+
const node = (0, xpath_1.runQuery)('//XCUIElementTypeTextField', fixtures_1.XML_IOS)[0];
|
|
38
|
+
(0, xpath_1.getNodeAttrVal)(node, 'name').should.eql('username');
|
|
39
39
|
});
|
|
40
40
|
it('should throw an error if the attr does not exist', function () {
|
|
41
|
-
const node = xpath_1.runQuery('//XCUIElementTypeTextField', fixtures_1.XML_IOS)[0];
|
|
42
|
-
should.throw(() => xpath_1.getNodeAttrVal(node, 'foo'));
|
|
41
|
+
const node = (0, xpath_1.runQuery)('//XCUIElementTypeTextField', fixtures_1.XML_IOS)[0];
|
|
42
|
+
should.throw(() => (0, xpath_1.getNodeAttrVal)(node, 'foo'));
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
45
|
});
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHBhdGgtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQveHBhdGgtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsMkNBQTJFO0FBQzNFLDZDQUFzRDtBQUN0RCwwQ0FBc0M7QUFFdEMsTUFBTSxNQUFNLEdBQUcsY0FBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtJQUMxQixRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyw2REFBNkQsRUFBRTtZQUNoRSxJQUFBLGdCQUFRLEVBQUMsS0FBSyxFQUFFLGtCQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRCxJQUFBLGdCQUFRLEVBQUMsNEJBQTRCLEVBQUUsa0JBQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7UUFDekIsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE1BQU0sRUFBQyxHQUFHLEVBQUMsR0FBRyxJQUFBLDJCQUFrQixFQUFDLGtCQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDdkUsSUFBQSxzQkFBYyxFQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDO2lCQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsK0RBQStELEVBQUU7WUFDbEUsTUFBTSxFQUFDLEdBQUcsRUFBQyxHQUFHLElBQUEsMkJBQWtCLEVBQUMsa0JBQU8sRUFBRSxLQUFLLEVBQUUsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUN2RSxJQUFBLHNCQUFjLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7aUJBQ2xDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsd0RBQXdELEVBQUU7WUFDM0QsTUFBTSxFQUFDLEdBQUcsRUFBQyxHQUFHLElBQUEsMkJBQWtCLEVBQUMsa0JBQU8sRUFBRSxLQUFLLEVBQUUsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUN2RSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFBLHNCQUFjLEVBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxRQUFRLENBQUUsZ0JBQWdCLEVBQUU7UUFDMUIsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUEsZ0JBQVEsRUFBQyw0QkFBNEIsRUFBRSxrQkFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsSUFBQSxzQkFBYyxFQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE1BQU0sSUFBSSxHQUFHLElBQUEsZ0JBQVEsRUFBQyw0QkFBNEIsRUFBRSxrQkFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLHNCQUFjLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.full.d.ts","../../base/node_modules/@types/node/assert.d.ts","../../base/node_modules/@types/node/assert/strict.d.ts","../../base/node_modules/@types/node/globals.d.ts","../../base/node_modules/@types/node/async_hooks.d.ts","../../base/node_modules/@types/node/buffer.d.ts","../../base/node_modules/@types/node/child_process.d.ts","../../base/node_modules/@types/node/cluster.d.ts","../../base/node_modules/@types/node/console.d.ts","../../base/node_modules/@types/node/constants.d.ts","../../base/node_modules/@types/node/crypto.d.ts","../../base/node_modules/@types/node/dgram.d.ts","../../base/node_modules/@types/node/diagnostics_channel.d.ts","../../base/node_modules/@types/node/dns.d.ts","../../base/node_modules/@types/node/dns/promises.d.ts","../../base/node_modules/@types/node/domain.d.ts","../../base/node_modules/@types/node/events.d.ts","../../base/node_modules/@types/node/fs.d.ts","../../base/node_modules/@types/node/fs/promises.d.ts","../../base/node_modules/@types/node/http.d.ts","../../base/node_modules/@types/node/http2.d.ts","../../base/node_modules/@types/node/https.d.ts","../../base/node_modules/@types/node/inspector.d.ts","../../base/node_modules/@types/node/module.d.ts","../../base/node_modules/@types/node/net.d.ts","../../base/node_modules/@types/node/os.d.ts","../../base/node_modules/@types/node/path.d.ts","../../base/node_modules/@types/node/perf_hooks.d.ts","../../base/node_modules/@types/node/process.d.ts","../../base/node_modules/@types/node/punycode.d.ts","../../base/node_modules/@types/node/querystring.d.ts","../../base/node_modules/@types/node/readline.d.ts","../../base/node_modules/@types/node/repl.d.ts","../../base/node_modules/@types/node/stream.d.ts","../../base/node_modules/@types/node/stream/promises.d.ts","../../base/node_modules/@types/node/stream/consumers.d.ts","../../base/node_modules/@types/node/stream/web.d.ts","../../base/node_modules/@types/node/string_decoder.d.ts","../../base/node_modules/@types/node/timers.d.ts","../../base/node_modules/@types/node/timers/promises.d.ts","../../base/node_modules/@types/node/tls.d.ts","../../base/node_modules/@types/node/trace_events.d.ts","../../base/node_modules/@types/node/tty.d.ts","../../base/node_modules/@types/node/url.d.ts","../../base/node_modules/@types/node/util.d.ts","../../base/node_modules/@types/node/v8.d.ts","../../base/node_modules/@types/node/vm.d.ts","../../base/node_modules/@types/node/wasi.d.ts","../../base/node_modules/@types/node/worker_threads.d.ts","../../base/node_modules/@types/node/zlib.d.ts","../../base/node_modules/@types/node/globals.global.d.ts","../../base/node_modules/@types/node/index.d.ts","../../base/node_modules/@types/range-parser/index.d.ts","../../base/node_modules/@types/qs/index.d.ts","../../base/node_modules/@types/express-serve-static-core/index.d.ts","../../base/node_modules/@types/mime/index.d.ts","../../base/node_modules/@types/serve-static/index.d.ts","../../base/node_modules/@types/connect/index.d.ts","../../base/node_modules/@types/body-parser/index.d.ts","../../base/node_modules/@types/express/index.d.ts","../../base/node_modules/@appium/base-driver/index.d.ts","../../base/index.d.ts","../node_modules/@appium/base-driver/index.d.ts","../node_modules/fast-xml-parser/src/parser.d.ts","../lib/node-map.js","../lib/attr-map.js","../lib/transformers.js","../lib/source.js","../node_modules/xpath/xpath.d.ts","../lib/xpath.js","../lib/logger.js","../lib/plugin.js","../index.js","../test/fixtures/index.js","../test/unit/plugin-specs.js","../test/unit/source-specs.js","../test/unit/xpath-specs.js","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"32b8443be144970b813b9dd72dcdba2059fbdfdae4d3a50c4d8a158ed6057bbe","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","bcc8caf03ee65fe8610d258752f255fbdddbb2e4de7b6c5628956a5a0d859ec8","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"c28e5baab1b53377c90d12970e207a2644bc3627840066449e37e2a59125d07e","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7","1835259a20b9fa6b1882931375b69ae5978195f2b139b4e0db51ec8319261649","b52cd693219a63dd21282ac99a7bf55f77cbe8a91f097968856419cc2e05f017","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"0b3eba6dca8c6e534d16ef7b7d76cb546cd3cbab616c8f71daa0a151b5412b9e","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","ca2b0e915cf19c63c1398f6e1c43eba4300186469f12db857bb19d150d1d64de","951da31b03c64b86883e39585ae377374b2e69b5d6d63d16bb6efe262cbd46da","ca2b0e915cf19c63c1398f6e1c43eba4300186469f12db857bb19d150d1d64de","9341c4f401b573890138386fb5b8a9369c5b27506e8ccd391c3b8c29ee0e9420","9ff94b7ec1438c52551610d074da9934b991f57badc9ef8daeee0ac1cae421d0","d62caf0f2da0befd6f426ba7c05bf23cdc7d1d8723d1ab715574727565659af2","a3dcf7636e3e50a3f50242ec2c803323ac33a28422a617cb1bf5a2b7b9bfedd7","7a29c454bb43aa70afe822f8f77e0f24b0005410e2a2eaf957f3c5b54a5a3b1c","4d4ac28f9ed5846ca7fe3625f380439cc4f69ef5f859c1b4006774736ad92963","b60c643a3c1b39c76f061385419c7b7732acbddadc7415a0651a568bcbcc2f76","42a8a44479eeaec720dd179931a5c280d412af18b804636635c20a81573f6590","d61d7e8da2803ec1a01fcb76ca225cc8480ac7f0d5aff6a7f5c09b4a7faefade","001d668702f05b852ca6031cbf51c2d0c8f1e6aad2996356f8cfd85a9b7a88be","920b642fb033be3a077b672990b5cf604a61531bb805568bbbc8b02edfbdadec","aff6e05619afa7ba99dd783ef743460efe854628fd6a5ec92ec40ef8ae994de3","62900b1c45663ea02dc129c57f8de3f60f35b098dc5973fdf0c4e62011ba92c7","1ee46f37d61e6bfe0939e36efe54208887d4033d13317003d89bafc528f156cd",{"version":"e8bf92aabac2b11e1bf60a0161039cd6f5f0cd9713863ca2289dd7b10eddece8","affectsGlobalScope":true}],"options":{"declaration":false,"esModuleInterop":true,"inlineSourceMap":true,"module":1,"outDir":"./","target":5},"fileIdsList":[[87],[62,87,102,103],[62,87,94,100],[62,87,94],[59,62,87,94,95,96],[87,96,97,99,101],[44,87],[47,87],[48,53,87],[49,59,60,67,76,86,87],[49,50,59,67,87],[51,87],[52,53,60,68,87],[53,76,83,87],[54,56,59,67,87],[55,87],[56,57,87],[58,59,87],[59,87],[59,60,61,76,86,87],[59,60,61,76,87],[62,67,76,86,87],[59,60,62,63,67,76,83,86,87],[62,64,76,83,86,87],[44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],[59,65,87],[66,86,87],[56,59,67,76,87],[68,87],[69,87],[47,70,87],[71,85,87,91],[72,87],[73,87],[59,74,87],[74,75,87,89],[59,76,77,78,87],[76,78,87],[76,77,87],[79,87],[80,87],[59,81,82,87],[81,82,87],[53,67,76,83,87],[84,87],[67,85,87],[48,62,73,86,87],[53,87],[76,87,88],[87,89],[87,90],[48,53,59,61,70,76,86,87,89,91],[76,87,92],[62,87,94,98],[60,87,110,114],[87,103,104,110,112,113],[87,106,107,108,109],[87,110],[87,111],[60,69,87],[87,103,112,115,116],[87,110,116],[87,110,112,116]],"referencedMap":[[120,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[43,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[41,1],[37,1],[38,1],[39,1],[40,1],[1,1],[42,1],[11,1],[10,1],[104,2],[103,1],[101,3],[100,4],[97,5],[102,6],[98,1],[44,7],[45,7],[47,8],[48,9],[49,10],[50,11],[51,12],[52,13],[53,14],[54,15],[55,16],[56,17],[57,17],[58,18],[59,19],[60,20],[61,21],[46,1],[93,1],[62,22],[63,23],[64,24],[94,25],[65,26],[66,27],[67,28],[68,29],[69,30],[70,31],[71,32],[72,33],[73,34],[74,35],[75,36],[76,37],[78,38],[77,39],[79,40],[80,41],[81,42],[82,43],[83,44],[84,45],[85,46],[86,47],[87,48],[88,49],[89,50],[90,51],[91,52],[92,53],[96,1],[95,1],[99,54],[115,55],[108,1],[113,1],[107,1],[114,56],[110,57],[109,58],[112,59],[105,1],[106,1],[111,1],[116,60],[117,61],[118,62],[119,63]],"exportedModulesMap":[[120,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[43,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[41,1],[37,1],[38,1],[39,1],[40,1],[1,1],[42,1],[11,1],[10,1],[104,2],[103,1],[101,3],[100,4],[97,5],[102,6],[98,1],[44,7],[45,7],[47,8],[48,9],[49,10],[50,11],[51,12],[52,13],[53,14],[54,15],[55,16],[56,17],[57,17],[58,18],[59,19],[60,20],[61,21],[46,1],[93,1],[62,22],[63,23],[64,24],[94,25],[65,26],[66,27],[67,28],[68,29],[69,30],[70,31],[71,32],[72,33],[73,34],[74,35],[75,36],[76,37],[78,38],[77,39],[79,40],[80,41],[81,42],[82,43],[83,44],[84,45],[85,46],[86,47],[87,48],[88,49],[89,50],[90,51],[91,52],[92,53],[96,1],[95,1],[99,54],[115,55],[108,1],[113,1],[107,1],[114,56],[110,57],[109,58],[112,59],[105,1],[106,1],[111,1],[116,60],[117,61],[118,62],[119,63]],"semanticDiagnosticsPerFile":[120,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,43,29,30,31,32,6,33,34,35,36,7,41,37,38,39,40,1,42,11,10,104,103,101,100,97,102,98,44,45,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,46,93,62,63,64,94,65,66,67,68,69,70,71,72,73,74,75,76,78,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,96,95,99,115,108,113,107,114,110,109,112,105,106,111,116,117,118,119]},"version":"4.5.5"}
|
package/lib/logger.js
CHANGED
package/lib/plugin.js
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
/* eslint-disable no-case-declarations */
|
|
2
2
|
|
|
3
3
|
import BasePlugin from '@appium/base-plugin';
|
|
4
|
-
import { errors } from 'appium
|
|
4
|
+
import { errors } from '@appium/base-driver';
|
|
5
5
|
import { transformSourceXml } from './source';
|
|
6
6
|
import { transformQuery } from './xpath';
|
|
7
7
|
import log from './logger';
|
|
8
8
|
|
|
9
|
-
const SOURCE_URL_RE = new RegExp('/session/[^/]+/source');
|
|
10
|
-
|
|
11
9
|
export default class UniversalXMLPlugin extends BasePlugin {
|
|
12
10
|
|
|
13
11
|
commands = ['getPageSource', 'findElement', 'findElements', 'findElementFromElement',
|
|
14
12
|
'findElementsFromElement'];
|
|
15
13
|
|
|
16
|
-
// we don't want the UIA2 driver to proxy source requests directly to the UIA2 server, since we
|
|
17
|
-
// want to handle the source command ourselves
|
|
18
|
-
shouldAvoidProxy (method, route) {
|
|
19
|
-
return method === 'GET' && SOURCE_URL_RE.test(route);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
14
|
async getPageSource (next, driver, sessId, addIndexPath = false) {
|
|
23
|
-
const source = await driver.getPageSource();
|
|
15
|
+
const source = next ? await next() : await driver.getPageSource();
|
|
24
16
|
const metadata = {};
|
|
25
17
|
const {platformName} = driver.caps;
|
|
26
18
|
if (platformName.toLowerCase() === 'android') {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/universal-xml-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Appium plugin for making XML source and XPath queries the same across iOS and Android",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -24,15 +24,15 @@
|
|
|
24
24
|
},
|
|
25
25
|
"homepage": "https://github.com/appium/appium-plugins#readme",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@appium/base-
|
|
28
|
-
"appium
|
|
29
|
-
"fast-xml-parser": "
|
|
30
|
-
"xmldom": "
|
|
27
|
+
"@appium/base-driver": "8.2.1",
|
|
28
|
+
"@appium/base-plugin": "^1.8.1",
|
|
29
|
+
"fast-xml-parser": "3.21.1",
|
|
30
|
+
"xmldom": "0.6.0",
|
|
31
31
|
"xpath": "0.0.32"
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
|
-
"test:unit": "mocha ./build/test/unit/*-specs.js",
|
|
35
|
-
"copyfiles": "copyfiles ./test/fixtures/*.xml ./build"
|
|
34
|
+
"test:unit": "mocha \"./build/test/unit/*-specs.js\"",
|
|
35
|
+
"copyfiles": "copyfiles \"./test/fixtures/*.xml\" ./build"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "5efbd2840a4e5dd078a4646c026472a006ab2211"
|
|
38
38
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chai from 'chai';
|
|
2
2
|
import chaiAsPromised from 'chai-as-promised';
|
|
3
3
|
import UniversalXMLPlugin from '../../index';
|
|
4
|
-
import BaseDriver from 'appium
|
|
4
|
+
import BaseDriver from '@appium/base-driver';
|
|
5
5
|
import { XML_IOS, XML_ANDROID, XML_IOS_TRANSFORMED, XML_ANDROID_TRANSFORMED } from '../fixtures';
|
|
6
6
|
import { runQuery, getNodeAttrVal } from '../../lib/xpath';
|
|
7
7
|
|
|
@@ -9,17 +9,17 @@ chai.use(chaiAsPromised);
|
|
|
9
9
|
chai.should();
|
|
10
10
|
|
|
11
11
|
describe('UniversalXMLPlugin', function () {
|
|
12
|
-
|
|
12
|
+
let next;
|
|
13
13
|
const p = new UniversalXMLPlugin();
|
|
14
14
|
describe('getPageSource', function () {
|
|
15
15
|
const driver = new BaseDriver();
|
|
16
16
|
it('should transform page source for ios', async function () {
|
|
17
|
-
driver.getPageSource = () => XML_IOS;
|
|
17
|
+
next = driver.getPageSource = () => XML_IOS;
|
|
18
18
|
driver.caps = {platformName: 'iOS'};
|
|
19
19
|
await p.getPageSource(next, driver).should.eventually.eql(XML_IOS_TRANSFORMED);
|
|
20
20
|
});
|
|
21
21
|
it('should transform page source for android', async function () {
|
|
22
|
-
driver.
|
|
22
|
+
next = driver.getPageSourcce = () => XML_ANDROID;
|
|
23
23
|
driver.caps = {platformName: 'Android'};
|
|
24
24
|
driver.opts = {appPackage: 'io.cloudgrey.the_app'};
|
|
25
25
|
await p.getPageSource(next, driver).should.eventually.eql(XML_ANDROID_TRANSFORMED);
|
|
@@ -29,7 +29,7 @@ describe('UniversalXMLPlugin', function () {
|
|
|
29
29
|
describe('findElement(s)', function () {
|
|
30
30
|
const driver = new BaseDriver();
|
|
31
31
|
it('should turn an xpath query into another query run on the original ios source', async function () {
|
|
32
|
-
driver.getPageSource = () => XML_IOS;
|
|
32
|
+
next = driver.getPageSource = () => XML_IOS;
|
|
33
33
|
driver.caps = {platformName: 'iOS'};
|
|
34
34
|
// mock out the findElement function to just return an xml node from the fixture
|
|
35
35
|
driver.findElement = (strategy, selector) => {
|
|
@@ -42,7 +42,7 @@ describe('UniversalXMLPlugin', function () {
|
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
it('should turn an xpath query into another query run on the original android source', async function () {
|
|
45
|
-
driver.getPageSource = () => XML_ANDROID;
|
|
45
|
+
next = driver.getPageSource = () => XML_ANDROID;
|
|
46
46
|
driver.caps = {platformName: 'Android'};
|
|
47
47
|
driver.opts = {appPackage: 'io.cloudgrey.the_app'};
|
|
48
48
|
driver.findElement = (strategy, selector) => {
|
package/tsconfig.json
CHANGED