@appium/universal-xml-plugin 1.0.3 → 1.0.5
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/LICENSE +2 -2
- package/build/lib/attr-map.d.ts +58 -0
- package/build/lib/attr-map.d.ts.map +1 -0
- package/build/lib/attr-map.js +1 -1
- package/build/lib/attr-map.js.map +1 -0
- package/build/lib/index.d.ts +5 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +26 -0
- package/build/lib/index.js.map +1 -0
- package/build/lib/logger.d.ts +3 -0
- package/build/lib/logger.d.ts.map +1 -0
- package/build/lib/logger.js +2 -2
- package/build/lib/logger.js.map +1 -0
- package/build/lib/node-map.d.ts +200 -0
- package/build/lib/node-map.d.ts.map +1 -0
- package/build/lib/node-map.js +15 -57
- package/build/lib/node-map.js.map +1 -0
- package/build/lib/plugin.d.ts +8 -0
- package/build/lib/plugin.d.ts.map +1 -0
- package/build/lib/plugin.js +16 -8
- package/build/lib/plugin.js.map +1 -0
- package/build/lib/source.d.ts +24 -0
- package/build/lib/source.d.ts.map +1 -0
- package/build/lib/source.js +24 -10
- package/build/lib/source.js.map +1 -0
- package/build/lib/transformers.d.ts +8 -0
- package/build/lib/transformers.d.ts.map +1 -0
- package/build/lib/transformers.js +1 -1
- package/build/lib/transformers.js.map +1 -0
- package/build/lib/xpath.d.ts +4 -0
- package/build/lib/xpath.d.ts.map +1 -0
- package/build/lib/xpath.js +3 -2
- package/build/lib/xpath.js.map +1 -0
- package/index.js +3 -17
- package/lib/attr-map.js +1 -1
- package/lib/index.js +19 -0
- package/lib/logger.js +1 -1
- package/lib/node-map.js +14 -58
- package/lib/plugin.js +36 -25
- package/lib/source.js +30 -13
- package/lib/transformers.js +3 -3
- package/lib/xpath.js +7 -6
- package/package.json +49 -23
- package/tsconfig.json +2 -6
- package/build/index.js +0 -25
- package/build/test/fixtures/android-transformed-path.xml +0 -39
- package/build/test/fixtures/android-transformed.xml +0 -39
- package/build/test/fixtures/android.xml +0 -39
- package/build/test/fixtures/index.js +0 -25
- package/build/test/fixtures/ios-edge.xml +0 -16
- package/build/test/fixtures/ios-transformed-edge.xml +0 -16
- package/build/test/fixtures/ios-transformed-path.xml +0 -54
- package/build/test/fixtures/ios-transformed.xml +0 -54
- package/build/test/fixtures/ios.xml +0 -51
- package/build/test/unit/plugin-specs.js +0 -59
- package/build/test/unit/source-specs.js +0 -82
- package/build/test/unit/xpath-specs.js +0 -46
- package/build/tsconfig.tsbuildinfo +0 -1
- package/test/fixtures/android-transformed-path.xml +0 -39
- package/test/fixtures/android-transformed.xml +0 -39
- package/test/fixtures/android.xml +0 -39
- package/test/fixtures/index.js +0 -14
- package/test/fixtures/ios-edge.xml +0 -16
- package/test/fixtures/ios-transformed-edge.xml +0 -16
- package/test/fixtures/ios-transformed-path.xml +0 -54
- package/test/fixtures/ios-transformed.xml +0 -54
- package/test/fixtures/ios.xml +0 -51
- package/test/unit/plugin-specs.js +0 -57
- package/test/unit/source-specs.js +0 -79
- package/test/unit/xpath-specs.js +0 -43
package/package.json
CHANGED
|
@@ -1,38 +1,64 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/universal-xml-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Appium plugin for making XML source and XPath queries the same across iOS and Android",
|
|
5
|
-
"
|
|
5
|
+
"keywords": [
|
|
6
|
+
"automation",
|
|
7
|
+
"javascript",
|
|
8
|
+
"selenium",
|
|
9
|
+
"webdriver",
|
|
10
|
+
"ios",
|
|
11
|
+
"android",
|
|
12
|
+
"firefoxos",
|
|
13
|
+
"testing"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://appium.io",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/appium/appium/issues"
|
|
18
|
+
},
|
|
6
19
|
"repository": {
|
|
7
20
|
"type": "git",
|
|
8
21
|
"url": "git+https://github.com/appium/appium-plugins.git"
|
|
9
22
|
},
|
|
10
|
-
"appium": {
|
|
11
|
-
"pluginName": "universal-xml",
|
|
12
|
-
"mainClass": "UniversalXMLPlugin"
|
|
13
|
-
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
"appium",
|
|
16
|
-
"automation",
|
|
17
|
-
"xml",
|
|
18
|
-
"webdriver"
|
|
19
|
-
],
|
|
20
|
-
"author": "Appium <maintainers@appium.io>",
|
|
21
23
|
"license": "Apache-2.0",
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
+
"author": "https://github.com/appium",
|
|
25
|
+
"types": "./build/lib/plugin.d.ts",
|
|
26
|
+
"files": [
|
|
27
|
+
"index.js",
|
|
28
|
+
"build",
|
|
29
|
+
"lib",
|
|
30
|
+
"tsconfig.json",
|
|
31
|
+
"!build/tsconfig.tsbuildinfo"
|
|
32
|
+
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"test": "npm run test:unit",
|
|
35
|
+
"test:smoke": "node ./build/lib/index.js",
|
|
36
|
+
"test:unit": "mocha \"./test/unit/**/*.spec.js\""
|
|
24
37
|
},
|
|
25
|
-
"homepage": "https://github.com/appium/appium-plugins#readme",
|
|
26
38
|
"dependencies": {
|
|
27
|
-
"@
|
|
28
|
-
"@
|
|
39
|
+
"@types/xmldom": "0.1.31",
|
|
40
|
+
"@xmldom/xmldom": "0.8.6",
|
|
29
41
|
"fast-xml-parser": "3.21.1",
|
|
30
|
-
"
|
|
42
|
+
"lodash": "4.17.21",
|
|
43
|
+
"source-map-support": "0.5.21",
|
|
31
44
|
"xpath": "0.0.32"
|
|
32
45
|
},
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"appium": "^2.0.0-beta.35"
|
|
48
|
+
},
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": "^14.17.0 || ^16.13.0 || >=18.0.0",
|
|
51
|
+
"npm": ">=8"
|
|
52
|
+
},
|
|
53
|
+
"appium": {
|
|
54
|
+
"pluginName": "universal-xml",
|
|
55
|
+
"mainClass": "UniversalXMLPlugin"
|
|
56
|
+
},
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"access": "public"
|
|
36
59
|
},
|
|
37
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "322363b8876a7ea7b630d538e22965f7bab0ea06",
|
|
61
|
+
"typedoc": {
|
|
62
|
+
"entryPoint": "./lib/index.js"
|
|
63
|
+
}
|
|
38
64
|
}
|
package/tsconfig.json
CHANGED
package/build/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.UniversalXMLPlugin = void 0;
|
|
7
|
-
const plugin_1 = __importDefault(require("./lib/plugin"));
|
|
8
|
-
exports.UniversalXMLPlugin = plugin_1.default;
|
|
9
|
-
exports.default = plugin_1.default;
|
|
10
|
-
if (module === require.main) {
|
|
11
|
-
const { transformSourceXml } = require('./lib/source');
|
|
12
|
-
const fs = require('fs');
|
|
13
|
-
const [, , xmlDataPath, platform, optsJson] = process.argv;
|
|
14
|
-
const xmlData = fs.readFileSync(xmlDataPath, 'utf8');
|
|
15
|
-
let opts = {};
|
|
16
|
-
if (optsJson) {
|
|
17
|
-
opts = JSON.parse(optsJson);
|
|
18
|
-
}
|
|
19
|
-
const { xml, unknowns } = transformSourceXml(xmlData, platform, opts);
|
|
20
|
-
console.log(xml); // eslint-disable-line no-console
|
|
21
|
-
if (unknowns.nodes.length || unknowns.attrs.length) {
|
|
22
|
-
console.error(unknowns); // eslint-disable-line no-console
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBOEM7QUFFckMsNkJBRkYsZ0JBQWtCLENBRUU7QUFEM0Isa0JBQWUsZ0JBQWtCLENBQUM7QUFHbEMsSUFBSSxNQUFNLEtBQUssT0FBTyxDQUFDLElBQUksRUFBRTtJQUMzQixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sQ0FBQyxFQUFDLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzFELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksUUFBUSxFQUFFO1FBQ1osSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDN0I7SUFDRCxNQUFNLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBQyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztJQUNuRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7S0FDM0Q7Q0FDRiJ9
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<UI width="1080" height="1920" indexPath="/0">
|
|
3
|
-
<View text="" indexPath="/0/0" x="0" y="0" width="1080" height="1920" visible="true">
|
|
4
|
-
<View text="" indexPath="/0/0/0" x="0" y="0" width="1080" height="1920" visible="true">
|
|
5
|
-
<View text="" indexPath="/0/0/0/0" x="0" y="72" width="1080" height="1848" visible="true">
|
|
6
|
-
<View text="" indexPath="/0/0/0/0/0" x="0" y="72" width="1080" height="1848" id="action_bar_root" visible="true">
|
|
7
|
-
<View text="" indexPath="/0/0/0/0/0/0" x="0" y="72" width="1080" height="1848" id="android:id/content" visible="true">
|
|
8
|
-
<View text="" indexPath="/0/0/0/0/0/0/0" x="0" y="72" width="1080" height="1848" visible="true">
|
|
9
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/0" x="0" y="72" width="1080" height="1848" visible="true"></View>
|
|
10
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1" x="0" y="72" width="1080" height="1848" visible="true">
|
|
11
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/0" x="0" y="72" width="1080" height="168" visible="true">
|
|
12
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/0/0" x="0" y="72" width="1080" height="168" visible="true">
|
|
13
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/0/0/0" x="0" y="72" width="1080" height="168" visible="true">
|
|
14
|
-
<Button text="" indexPath="/0/0/0/0/0/0/0/1/0/0/0/0" x="0" y="72" width="168" height="168" visible="true"></Button>
|
|
15
|
-
</View>
|
|
16
|
-
</View>
|
|
17
|
-
</View>
|
|
18
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/1" x="0" y="240" width="1080" height="1680" visible="true">
|
|
19
|
-
<Text text="Login" indexPath="/0/0/0/0/0/0/0/1/1/0" x="413" y="360" width="255" height="136" visible="true"></Text>
|
|
20
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/1/1" x="150" y="496" width="780" height="120" visible="true">
|
|
21
|
-
<TextInput text="alice" indexPath="/0/0/0/0/0/0/0/1/1/1/0" x="150" y="504" width="780" height="112" axId="username" visible="true"></TextInput>
|
|
22
|
-
</View>
|
|
23
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/1/2" x="150" y="616" width="780" height="120" visible="true">
|
|
24
|
-
<TextInput text="•••••••••" indexPath="/0/0/0/0/0/0/0/1/1/2/0" x="150" y="624" width="780" height="112" axId="password" visible="true"></TextInput>
|
|
25
|
-
</View>
|
|
26
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/1/3" x="456" y="736" width="168" height="113" visible="true">
|
|
27
|
-
<View text="" indexPath="/0/0/0/0/0/0/0/1/1/3/0" x="456" y="736" width="168" height="113" axId="loginBtn" visible="true">
|
|
28
|
-
<Text text="Login" indexPath="/0/0/0/0/0/0/0/1/1/3/0/0" x="456" y="736" width="168" height="113" visible="true"></Text>
|
|
29
|
-
</View>
|
|
30
|
-
</View>
|
|
31
|
-
</View>
|
|
32
|
-
</View>
|
|
33
|
-
</View>
|
|
34
|
-
</View>
|
|
35
|
-
</View>
|
|
36
|
-
</View>
|
|
37
|
-
</View>
|
|
38
|
-
</View>
|
|
39
|
-
</UI>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<UI width="1080" height="1920">
|
|
3
|
-
<View text="" x="0" y="0" width="1080" height="1920" visible="true">
|
|
4
|
-
<View text="" x="0" y="0" width="1080" height="1920" visible="true">
|
|
5
|
-
<View text="" x="0" y="72" width="1080" height="1848" visible="true">
|
|
6
|
-
<View text="" x="0" y="72" width="1080" height="1848" id="action_bar_root" visible="true">
|
|
7
|
-
<View text="" x="0" y="72" width="1080" height="1848" id="android:id/content" visible="true">
|
|
8
|
-
<View text="" x="0" y="72" width="1080" height="1848" visible="true">
|
|
9
|
-
<View text="" x="0" y="72" width="1080" height="1848" visible="true"></View>
|
|
10
|
-
<View text="" x="0" y="72" width="1080" height="1848" visible="true">
|
|
11
|
-
<View text="" x="0" y="72" width="1080" height="168" visible="true">
|
|
12
|
-
<View text="" x="0" y="72" width="1080" height="168" visible="true">
|
|
13
|
-
<View text="" x="0" y="72" width="1080" height="168" visible="true">
|
|
14
|
-
<Button text="" x="0" y="72" width="168" height="168" visible="true"></Button>
|
|
15
|
-
</View>
|
|
16
|
-
</View>
|
|
17
|
-
</View>
|
|
18
|
-
<View text="" x="0" y="240" width="1080" height="1680" visible="true">
|
|
19
|
-
<Text text="Login" x="413" y="360" width="255" height="136" visible="true"></Text>
|
|
20
|
-
<View text="" x="150" y="496" width="780" height="120" visible="true">
|
|
21
|
-
<TextInput text="alice" x="150" y="504" width="780" height="112" axId="username" visible="true"></TextInput>
|
|
22
|
-
</View>
|
|
23
|
-
<View text="" x="150" y="616" width="780" height="120" visible="true">
|
|
24
|
-
<TextInput text="•••••••••" x="150" y="624" width="780" height="112" axId="password" visible="true"></TextInput>
|
|
25
|
-
</View>
|
|
26
|
-
<View text="" x="456" y="736" width="168" height="113" visible="true">
|
|
27
|
-
<View text="" x="456" y="736" width="168" height="113" axId="loginBtn" visible="true">
|
|
28
|
-
<Text text="Login" x="456" y="736" width="168" height="113" visible="true"></Text>
|
|
29
|
-
</View>
|
|
30
|
-
</View>
|
|
31
|
-
</View>
|
|
32
|
-
</View>
|
|
33
|
-
</View>
|
|
34
|
-
</View>
|
|
35
|
-
</View>
|
|
36
|
-
</View>
|
|
37
|
-
</View>
|
|
38
|
-
</View>
|
|
39
|
-
</UI>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
|
|
2
|
-
<hierarchy index="0" class="hierarchy" rotation="0" width="1080" height="1920">
|
|
3
|
-
<android.widget.FrameLayout index="0" package="io.cloudgrey.the_app" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1920]" displayed="true">
|
|
4
|
-
<android.widget.LinearLayout index="0" package="io.cloudgrey.the_app" class="android.widget.LinearLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1920]" displayed="true">
|
|
5
|
-
<android.widget.FrameLayout index="0" package="io.cloudgrey.the_app" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,1920]" displayed="true">
|
|
6
|
-
<android.widget.LinearLayout index="0" package="io.cloudgrey.the_app" class="android.widget.LinearLayout" text="" resource-id="io.cloudgrey.the_app:id/action_bar_root" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,1920]" displayed="true">
|
|
7
|
-
<android.widget.FrameLayout index="0" package="io.cloudgrey.the_app" class="android.widget.FrameLayout" text="" resource-id="android:id/content" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,1920]" displayed="true">
|
|
8
|
-
<android.widget.RelativeLayout index="0" package="io.cloudgrey.the_app" class="android.widget.RelativeLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,1920]" displayed="true">
|
|
9
|
-
<android.view.ViewGroup index="0" package="io.cloudgrey.the_app" class="android.view.ViewGroup" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,1920]" displayed="true" />
|
|
10
|
-
<android.widget.RelativeLayout index="1" package="io.cloudgrey.the_app" class="android.widget.RelativeLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,1920]" displayed="true">
|
|
11
|
-
<android.widget.LinearLayout index="0" package="io.cloudgrey.the_app" class="android.widget.LinearLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,240]" displayed="true">
|
|
12
|
-
<android.widget.FrameLayout index="0" package="io.cloudgrey.the_app" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,240]" displayed="true">
|
|
13
|
-
<android.view.ViewGroup index="0" package="io.cloudgrey.the_app" class="android.view.ViewGroup" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][1080,240]" displayed="true">
|
|
14
|
-
<android.widget.ImageButton index="0" package="io.cloudgrey.the_app" class="android.widget.ImageButton" text="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,72][168,240]" displayed="true" />
|
|
15
|
-
</android.view.ViewGroup>
|
|
16
|
-
</android.widget.FrameLayout>
|
|
17
|
-
</android.widget.LinearLayout>
|
|
18
|
-
<android.widget.FrameLayout index="1" package="io.cloudgrey.the_app" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,240][1080,1920]" displayed="true">
|
|
19
|
-
<android.widget.TextView index="0" package="io.cloudgrey.the_app" class="android.widget.TextView" text="Login" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[413,360][668,496]" displayed="true" />
|
|
20
|
-
<android.view.ViewGroup index="1" package="io.cloudgrey.the_app" class="android.view.ViewGroup" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[150,496][930,616]" displayed="true">
|
|
21
|
-
<android.widget.EditText index="0" package="io.cloudgrey.the_app" class="android.widget.EditText" text="alice" content-desc="username" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="true" password="false" scrollable="false" selected="false" bounds="[150,504][930,616]" displayed="true" />
|
|
22
|
-
</android.view.ViewGroup>
|
|
23
|
-
<android.view.ViewGroup index="2" package="io.cloudgrey.the_app" class="android.view.ViewGroup" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[150,616][930,736]" displayed="true">
|
|
24
|
-
<android.widget.EditText index="0" package="io.cloudgrey.the_app" class="android.widget.EditText" text="•••••••••" content-desc="password" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="true" password="true" scrollable="false" selected="false" bounds="[150,624][930,736]" displayed="true" />
|
|
25
|
-
</android.view.ViewGroup>
|
|
26
|
-
<android.view.ViewGroup index="3" package="io.cloudgrey.the_app" class="android.view.ViewGroup" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[456,736][624,849]" displayed="true">
|
|
27
|
-
<android.view.ViewGroup index="0" package="io.cloudgrey.the_app" class="android.view.ViewGroup" text="" content-desc="loginBtn" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[456,736][624,849]" displayed="true">
|
|
28
|
-
<android.widget.TextView index="0" package="io.cloudgrey.the_app" class="android.widget.TextView" text="Login" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[456,736][624,849]" displayed="true" />
|
|
29
|
-
</android.view.ViewGroup>
|
|
30
|
-
</android.view.ViewGroup>
|
|
31
|
-
</android.widget.FrameLayout>
|
|
32
|
-
</android.widget.RelativeLayout>
|
|
33
|
-
</android.widget.RelativeLayout>
|
|
34
|
-
</android.widget.FrameLayout>
|
|
35
|
-
</android.widget.LinearLayout>
|
|
36
|
-
</android.widget.FrameLayout>
|
|
37
|
-
</android.widget.LinearLayout>
|
|
38
|
-
</android.widget.FrameLayout>
|
|
39
|
-
</hierarchy>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.XML_IOS_EDGE_TRANSFORMED = exports.XML_IOS_EDGE = exports.XML_ANDROID_TRANSFORMED_INDEX_PATH = exports.XML_IOS_TRANSFORMED_INDEX_PATH = exports.XML_ANDROID_TRANSFORMED = exports.XML_IOS_TRANSFORMED = exports.XML_ANDROID = exports.XML_IOS = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const XML_IOS = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'ios.xml'), 'utf8').trim();
|
|
10
|
-
exports.XML_IOS = XML_IOS;
|
|
11
|
-
const XML_IOS_TRANSFORMED = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'ios-transformed.xml'), 'utf8').trim();
|
|
12
|
-
exports.XML_IOS_TRANSFORMED = XML_IOS_TRANSFORMED;
|
|
13
|
-
const XML_IOS_TRANSFORMED_INDEX_PATH = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'ios-transformed-path.xml'), 'utf8').trim();
|
|
14
|
-
exports.XML_IOS_TRANSFORMED_INDEX_PATH = XML_IOS_TRANSFORMED_INDEX_PATH;
|
|
15
|
-
const XML_IOS_EDGE = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'ios-edge.xml'), 'utf8').trim();
|
|
16
|
-
exports.XML_IOS_EDGE = XML_IOS_EDGE;
|
|
17
|
-
const XML_IOS_EDGE_TRANSFORMED = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'ios-transformed-edge.xml'), 'utf8').trim();
|
|
18
|
-
exports.XML_IOS_EDGE_TRANSFORMED = XML_IOS_EDGE_TRANSFORMED;
|
|
19
|
-
const XML_ANDROID = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'android.xml'), 'utf8').trim();
|
|
20
|
-
exports.XML_ANDROID = XML_ANDROID;
|
|
21
|
-
const XML_ANDROID_TRANSFORMED = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'android-transformed.xml'), 'utf8').trim();
|
|
22
|
-
exports.XML_ANDROID_TRANSFORMED = XML_ANDROID_TRANSFORMED;
|
|
23
|
-
const XML_ANDROID_TRANSFORMED_INDEX_PATH = fs_1.default.readFileSync(path_1.default.resolve(__dirname, 'android-transformed-path.xml'), 'utf8').trim();
|
|
24
|
-
exports.XML_ANDROID_TRANSFORMED_INDEX_PATH = XML_ANDROID_TRANSFORMED_INDEX_PATH;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQixnREFBd0I7QUFFeEIsTUFBTSxPQUFPLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQVMxRSwwQkFBTztBQVJoQixNQUFNLG1CQUFtQixHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQVE1RSxrREFBbUI7QUFQbEQsTUFBTSw4QkFBOEIsR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFPOUMsd0VBQThCO0FBTjNHLE1BQU0sWUFBWSxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFPdkQsb0NBQVk7QUFObEQsTUFBTSx3QkFBd0IsR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFNakUsNERBQXdCO0FBTDVFLE1BQU0sV0FBVyxHQUFHLFlBQUUsQ0FBQyxZQUFZLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFJekUsa0NBQVc7QUFIN0IsTUFBTSx1QkFBdUIsR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLHlCQUF5QixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFHL0QsMERBQXVCO0FBRjNFLE1BQU0sa0NBQWtDLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSw4QkFBOEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBR2pJLGdGQUFrQyJ9
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<AppiumAUT>
|
|
3
|
-
<XCUIElementTypeApplication type="XCUIElementTypeApplication" name="TheApp" label="TheApp" enabled="true" visible="true" x="0" y="0" width="414" height="896" index="0">
|
|
4
|
-
<SomeRandoElement type="blah" oddAttribute="odd" />
|
|
5
|
-
<SomeRandoElement type="blah" oddAttribute="odd" />
|
|
6
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="username" label="username" enabled="true" visible="true" x="50" y="185" width="314" height="51" index="0">
|
|
7
|
-
<XCUIElementTypeTextField type="XCUIElementTypeTextField" value="alice" name="username" label="username" enabled="true" visible="true" x="50" y="185" width="314" height="51" index="0"/>
|
|
8
|
-
<XCUIElementTypeTab type="XCUIElementTypeTab" name="fakeTab" label="" enabled="" visible="true" x="50" y="185" width="314" height="51" index="1"/>
|
|
9
|
-
<XCUIElementTypeTab type="XCUIElementTypeTab" name="fakeTab" label="" enabled="" visible="true" x="50" y="185" width="314" height="51" index="2"/>
|
|
10
|
-
<XCUIElementTypeKey type="XCUIElementTypeKey" name="fakeKey" label="" enabled="" visible="true" x="50" y="185" width="314" height="51" index="3">
|
|
11
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="fakeOther" label="" enabled="" visible="true" x="1" y="2" width="3" height="4" index="0"/>
|
|
12
|
-
</XCUIElementTypeKey>
|
|
13
|
-
<XCUIElementTypeKey type="XCUIElementTypeKey" name="fakeKey" label="" enabled="" visible="true" x="50" y="185" width="314" height="51" index="4"/>
|
|
14
|
-
</XCUIElementTypeOther>
|
|
15
|
-
</XCUIElementTypeApplication>
|
|
16
|
-
</AppiumAUT>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<UI>
|
|
3
|
-
<App visible="true" x="0" y="0" width="414" height="896" axId="TheApp" text="TheApp">
|
|
4
|
-
<SomeRandoElement oddAttribute="odd"></SomeRandoElement>
|
|
5
|
-
<SomeRandoElement oddAttribute="odd"></SomeRandoElement>
|
|
6
|
-
<Element visible="true" x="50" y="185" width="314" height="51" axId="username" text="username">
|
|
7
|
-
<TextInput value="alice" visible="true" x="50" y="185" width="314" height="51" axId="username" text="username"></TextInput>
|
|
8
|
-
<Button visible="true" x="50" y="185" width="314" height="51" axId="fakeTab" text=""></Button>
|
|
9
|
-
<Button visible="true" x="50" y="185" width="314" height="51" axId="fakeTab" text=""></Button>
|
|
10
|
-
<Button visible="true" x="50" y="185" width="314" height="51" axId="fakeKey" text="">
|
|
11
|
-
<Element visible="true" x="1" y="2" width="3" height="4" axId="fakeOther" text=""></Element>
|
|
12
|
-
</Button>
|
|
13
|
-
<Button visible="true" x="50" y="185" width="314" height="51" axId="fakeKey" text=""></Button>
|
|
14
|
-
</Element>
|
|
15
|
-
</App>
|
|
16
|
-
</UI>
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<UI indexPath="/0">
|
|
3
|
-
<App visible="true" x="0" y="0" width="414" height="896" indexPath="/0/0" axId="TheApp" text="TheApp">
|
|
4
|
-
<Window visible="true" x="0" y="0" width="414" height="896" indexPath="/0/0/0">
|
|
5
|
-
<Element visible="true" x="0" y="0" width="414" height="896" indexPath="/0/0/0/0">
|
|
6
|
-
<Nav visible="true" x="0" y="48" width="414" height="44" indexPath="/0/0/0/0/0" axId="RCCView">
|
|
7
|
-
<Button visible="true" x="0" y="48" width="96" height="44" indexPath="/0/0/0/0/0/0" axId="The App" text="The App"></Button>
|
|
8
|
-
</Nav>
|
|
9
|
-
<Element visible="true" x="0" y="0" width="414" height="896" indexPath="/0/0/0/0/1">
|
|
10
|
-
<Element visible="true" x="0" y="0" width="414" height="896" indexPath="/0/0/0/0/1/0">
|
|
11
|
-
<Element visible="true" x="0" y="92" width="414" height="804" indexPath="/0/0/0/0/1/0/0">
|
|
12
|
-
<Element visible="true" x="0" y="92" width="414" height="804" indexPath="/0/0/0/0/1/0/0/0" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
13
|
-
<Element visible="true" x="0" y="92" width="414" height="804" indexPath="/0/0/0/0/1/0/0/0/0" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
14
|
-
<Element visible="true" x="0" y="92" width="414" height="804" indexPath="/0/0/0/0/1/0/0/0/0/0" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
15
|
-
<Element visible="true" x="0" y="92" width="414" height="273" indexPath="/0/0/0/0/1/0/0/0/0/0/0" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
16
|
-
<Text value="Login" visible="true" x="157" y="132" width="101" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/0" axId="Login" text="Login"></Text>
|
|
17
|
-
<Element visible="true" x="50" y="183" width="314" height="40" indexPath="/0/0/0/0/1/0/0/0/0/0/0/1" axId="username" text="username">
|
|
18
|
-
<Element visible="true" x="50" y="183" width="314" height="40" indexPath="/0/0/0/0/1/0/0/0/0/0/0/1/0" axId="username" text="username">
|
|
19
|
-
<Element visible="true" x="50" y="185" width="314" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/1/0/0" axId="username" text="username">
|
|
20
|
-
<TextInput value="alice" visible="true" x="50" y="185" width="314" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/1/0/0/0" axId="username" text="username"></TextInput>
|
|
21
|
-
<Button visible="true" x="50" y="185" width="314" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/1/0/0/1" axId="fakeTab" text=""></Button>
|
|
22
|
-
<Button visible="true" x="50" y="185" width="314" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/1/0/0/2" axId="fakeKey" text=""></Button>
|
|
23
|
-
</Element>
|
|
24
|
-
</Element>
|
|
25
|
-
</Element>
|
|
26
|
-
<Element visible="true" x="50" y="223" width="314" height="40" indexPath="/0/0/0/0/1/0/0/0/0/0/0/2" axId="password" text="password">
|
|
27
|
-
<Element visible="true" x="50" y="223" width="314" height="40" indexPath="/0/0/0/0/1/0/0/0/0/0/0/2/0" axId="password" text="password">
|
|
28
|
-
<Element visible="true" x="50" y="225" width="314" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/2/0/0" axId="password" text="password">
|
|
29
|
-
<TextInput value="•••••••••" visible="true" x="50" y="225" width="314" height="51" indexPath="/0/0/0/0/1/0/0/0/0/0/0/2/0/0/0" axId="password" text="password"></TextInput>
|
|
30
|
-
</Element>
|
|
31
|
-
</Element>
|
|
32
|
-
</Element>
|
|
33
|
-
<Element visible="true" x="177" y="263" width="60" height="102" indexPath="/0/0/0/0/1/0/0/0/0/0/0/3" axId="loginBtn" text="loginBtn">
|
|
34
|
-
<Element visible="true" x="177" y="327" width="60" height="38" indexPath="/0/0/0/0/1/0/0/0/0/0/0/3/0" axId="loginBtn" text="loginBtn"></Element>
|
|
35
|
-
</Element>
|
|
36
|
-
</Element>
|
|
37
|
-
</Element>
|
|
38
|
-
</Element>
|
|
39
|
-
</Element>
|
|
40
|
-
</Element>
|
|
41
|
-
</Element>
|
|
42
|
-
</Element>
|
|
43
|
-
</Element>
|
|
44
|
-
</Window>
|
|
45
|
-
<Window visible="false" x="0" y="0" width="414" height="896" indexPath="/0/0/1">
|
|
46
|
-
<Element visible="false" x="0" y="0" width="414" height="896" indexPath="/0/0/1/0">
|
|
47
|
-
<Element visible="false" x="0" y="0" width="414" height="896" indexPath="/0/0/1/0/0"></Element>
|
|
48
|
-
<Element visible="false" x="0" y="896" width="414" height="71" indexPath="/0/0/1/0/1">
|
|
49
|
-
<Element visible="false" x="0" y="896" width="414" height="71" indexPath="/0/0/1/0/1/0"></Element>
|
|
50
|
-
</Element>
|
|
51
|
-
</Element>
|
|
52
|
-
</Window>
|
|
53
|
-
</App>
|
|
54
|
-
</UI>
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<UI>
|
|
3
|
-
<App visible="true" x="0" y="0" width="414" height="896" axId="TheApp" text="TheApp">
|
|
4
|
-
<Window visible="true" x="0" y="0" width="414" height="896">
|
|
5
|
-
<Element visible="true" x="0" y="0" width="414" height="896">
|
|
6
|
-
<Nav visible="true" x="0" y="48" width="414" height="44" axId="RCCView">
|
|
7
|
-
<Button visible="true" x="0" y="48" width="96" height="44" axId="The App" text="The App"></Button>
|
|
8
|
-
</Nav>
|
|
9
|
-
<Element visible="true" x="0" y="0" width="414" height="896">
|
|
10
|
-
<Element visible="true" x="0" y="0" width="414" height="896">
|
|
11
|
-
<Element visible="true" x="0" y="92" width="414" height="804">
|
|
12
|
-
<Element visible="true" x="0" y="92" width="414" height="804" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
13
|
-
<Element visible="true" x="0" y="92" width="414" height="804" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
14
|
-
<Element visible="true" x="0" y="92" width="414" height="804" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
15
|
-
<Element visible="true" x="0" y="92" width="414" height="273" axId="Login username password loginBtn" text="Login username password loginBtn">
|
|
16
|
-
<Text value="Login" visible="true" x="157" y="132" width="101" height="51" axId="Login" text="Login"></Text>
|
|
17
|
-
<Element visible="true" x="50" y="183" width="314" height="40" axId="username" text="username">
|
|
18
|
-
<Element visible="true" x="50" y="183" width="314" height="40" axId="username" text="username">
|
|
19
|
-
<Element visible="true" x="50" y="185" width="314" height="51" axId="username" text="username">
|
|
20
|
-
<TextInput value="alice" visible="true" x="50" y="185" width="314" height="51" axId="username" text="username"></TextInput>
|
|
21
|
-
<Button visible="true" x="50" y="185" width="314" height="51" axId="fakeTab" text=""></Button>
|
|
22
|
-
<Button visible="true" x="50" y="185" width="314" height="51" axId="fakeKey" text=""></Button>
|
|
23
|
-
</Element>
|
|
24
|
-
</Element>
|
|
25
|
-
</Element>
|
|
26
|
-
<Element visible="true" x="50" y="223" width="314" height="40" axId="password" text="password">
|
|
27
|
-
<Element visible="true" x="50" y="223" width="314" height="40" axId="password" text="password">
|
|
28
|
-
<Element visible="true" x="50" y="225" width="314" height="51" axId="password" text="password">
|
|
29
|
-
<TextInput value="•••••••••" visible="true" x="50" y="225" width="314" height="51" axId="password" text="password"></TextInput>
|
|
30
|
-
</Element>
|
|
31
|
-
</Element>
|
|
32
|
-
</Element>
|
|
33
|
-
<Element visible="true" x="177" y="263" width="60" height="102" axId="loginBtn" text="loginBtn">
|
|
34
|
-
<Element visible="true" x="177" y="327" width="60" height="38" axId="loginBtn" text="loginBtn"></Element>
|
|
35
|
-
</Element>
|
|
36
|
-
</Element>
|
|
37
|
-
</Element>
|
|
38
|
-
</Element>
|
|
39
|
-
</Element>
|
|
40
|
-
</Element>
|
|
41
|
-
</Element>
|
|
42
|
-
</Element>
|
|
43
|
-
</Element>
|
|
44
|
-
</Window>
|
|
45
|
-
<Window visible="false" x="0" y="0" width="414" height="896">
|
|
46
|
-
<Element visible="false" x="0" y="0" width="414" height="896">
|
|
47
|
-
<Element visible="false" x="0" y="0" width="414" height="896"></Element>
|
|
48
|
-
<Element visible="false" x="0" y="896" width="414" height="71">
|
|
49
|
-
<Element visible="false" x="0" y="896" width="414" height="71"></Element>
|
|
50
|
-
</Element>
|
|
51
|
-
</Element>
|
|
52
|
-
</Window>
|
|
53
|
-
</App>
|
|
54
|
-
</UI>
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><AppiumAUT><XCUIElementTypeApplication type="XCUIElementTypeApplication" name="TheApp" label="TheApp" enabled="true" visible="true" x="0" y="0" width="414" height="896" index="0">
|
|
2
|
-
<XCUIElementTypeWindow type="XCUIElementTypeWindow" enabled="true" visible="true" x="0" y="0" width="414" height="896" index="0">
|
|
3
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="0" width="414" height="896" index="0">
|
|
4
|
-
<XCUIElementTypeNavigationBar type="XCUIElementTypeNavigationBar" name="RCCView" enabled="true" visible="true" x="0" y="48" width="414" height="44" index="0">
|
|
5
|
-
<XCUIElementTypeButton type="XCUIElementTypeButton" name="The App" label="The App" enabled="true" visible="true" x="0" y="48" width="96" height="44" index="0"/>
|
|
6
|
-
</XCUIElementTypeNavigationBar>
|
|
7
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="0" width="414" height="896" index="1">
|
|
8
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="0" width="414" height="896" index="0">
|
|
9
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="92" width="414" height="804" index="0">
|
|
10
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="Login username password loginBtn" label="Login username password loginBtn" enabled="true" visible="true" x="0" y="92" width="414" height="804" index="0">
|
|
11
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="Login username password loginBtn" label="Login username password loginBtn" enabled="true" visible="true" x="0" y="92" width="414" height="804" index="0">
|
|
12
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="Login username password loginBtn" label="Login username password loginBtn" enabled="true" visible="true" x="0" y="92" width="414" height="804" index="0">
|
|
13
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="Login username password loginBtn" label="Login username password loginBtn" enabled="true" visible="true" x="0" y="92" width="414" height="273" index="0">
|
|
14
|
-
<XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="Login" name="Login" label="Login" enabled="true" visible="true" x="157" y="132" width="101" height="51" index="0"/>
|
|
15
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="username" label="username" enabled="true" visible="true" x="50" y="183" width="314" height="40" index="1">
|
|
16
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="username" label="username" enabled="true" visible="true" x="50" y="183" width="314" height="40" index="0">
|
|
17
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="username" label="username" enabled="true" visible="true" x="50" y="185" width="314" height="51" index="0">
|
|
18
|
-
<XCUIElementTypeTextField type="XCUIElementTypeTextField" value="alice" name="username" label="username" enabled="true" visible="true" x="50" y="185" width="314" height="51" index="0"/>
|
|
19
|
-
<XCUIElementTypeTab type="XCUIElementTypeTab" name="fakeTab" label="" enabled="" visible="true" x="50" y="185" width="314" height="51" index="1"/>
|
|
20
|
-
<XCUIElementTypeKey type="XCUIElementTypeKey" name="fakeKey" label="" enabled="" visible="true" x="50" y="185" width="314" height="51" index="2"/>
|
|
21
|
-
</XCUIElementTypeOther>
|
|
22
|
-
</XCUIElementTypeOther>
|
|
23
|
-
</XCUIElementTypeOther>
|
|
24
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="password" label="password" enabled="true" visible="true" x="50" y="223" width="314" height="40" index="2">
|
|
25
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="password" label="password" enabled="true" visible="true" x="50" y="223" width="314" height="40" index="0">
|
|
26
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="password" label="password" enabled="true" visible="true" x="50" y="225" width="314" height="51" index="0">
|
|
27
|
-
<XCUIElementTypeSecureTextField type="XCUIElementTypeSecureTextField" value="•••••••••" name="password" label="password" enabled="true" visible="true" x="50" y="225" width="314" height="51" index="0"/>
|
|
28
|
-
</XCUIElementTypeOther>
|
|
29
|
-
</XCUIElementTypeOther>
|
|
30
|
-
</XCUIElementTypeOther>
|
|
31
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="loginBtn" label="loginBtn" enabled="true" visible="true" x="177" y="263" width="60" height="102" index="3">
|
|
32
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" name="loginBtn" label="loginBtn" enabled="true" visible="true" x="177" y="327" width="60" height="38" index="0"/>
|
|
33
|
-
</XCUIElementTypeOther>
|
|
34
|
-
</XCUIElementTypeOther>
|
|
35
|
-
</XCUIElementTypeOther>
|
|
36
|
-
</XCUIElementTypeOther>
|
|
37
|
-
</XCUIElementTypeOther>
|
|
38
|
-
</XCUIElementTypeOther>
|
|
39
|
-
</XCUIElementTypeOther>
|
|
40
|
-
</XCUIElementTypeOther>
|
|
41
|
-
</XCUIElementTypeOther>
|
|
42
|
-
</XCUIElementTypeWindow>
|
|
43
|
-
<XCUIElementTypeWindow type="XCUIElementTypeWindow" enabled="true" visible="false" x="0" y="0" width="414" height="896" index="1">
|
|
44
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="0" width="414" height="896" index="0">
|
|
45
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="0" width="414" height="896" index="0"/>
|
|
46
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="896" width="414" height="71" index="1">
|
|
47
|
-
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="896" width="414" height="71" index="0"/>
|
|
48
|
-
</XCUIElementTypeOther>
|
|
49
|
-
</XCUIElementTypeOther>
|
|
50
|
-
</XCUIElementTypeWindow>
|
|
51
|
-
</XCUIElementTypeApplication></AppiumAUT>
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const chai_1 = __importDefault(require("chai"));
|
|
7
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
8
|
-
const index_1 = __importDefault(require("../../index"));
|
|
9
|
-
const base_driver_1 = __importDefault(require("@appium/base-driver"));
|
|
10
|
-
const fixtures_1 = require("../fixtures");
|
|
11
|
-
const xpath_1 = require("../../lib/xpath");
|
|
12
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
13
|
-
chai_1.default.should();
|
|
14
|
-
describe('UniversalXMLPlugin', function () {
|
|
15
|
-
let next;
|
|
16
|
-
const p = new index_1.default();
|
|
17
|
-
describe('getPageSource', function () {
|
|
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);
|
|
23
|
-
});
|
|
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);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
describe('findElement(s)', function () {
|
|
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');
|
|
44
|
-
});
|
|
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');
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3BsdWdpbi1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qix3RUFBOEM7QUFDOUMsd0RBQTZDO0FBQzdDLHNFQUE2QztBQUM3QywwQ0FBaUc7QUFDakcsMkNBQTJEO0FBRTNELGNBQUksQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUVkLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixJQUFJLElBQUksQ0FBQztJQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksZUFBa0IsRUFBRSxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxlQUFlLEVBQUU7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBVSxFQUFFLENBQUM7UUFDaEMsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEtBQUs7WUFDOUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQU8sQ0FBQztZQUM1QyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsOEJBQW1CLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLO1lBQ2xELElBQUksR0FBRyxNQUFNLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLHNCQUFXLENBQUM7WUFDakQsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUMsVUFBVSxF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
|