@appium/universal-xml-plugin 1.0.0-beta.15 → 1.0.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"node-map.js","names":["Alert","ios","android","App","Button","Cell","CheckBox","Column","DateInput","Element","Grid","Icon","Image","Indicator","Input","List","Map","Menu","Modal","Nav","PickerInput","RadioInput","Row","Scrollable","SearchInput","SliderInput","Spinner","SwitchInput","Table","Text","TextInput","ToggleInput","Toolbar","UI","Video","View","WebView","Window"],"sources":["../../lib/node-map.js"],"sourcesContent":["/*\n * This file exports a mapping between universal node names and platform-specific node names. The\n * keys in the exported object are the universal node names, and the values are objects with keys\n * corresponding to platformNames. The values of those platformName keys can be either a string\n * (meaning that that platform-specific node name will be mapped to the universal node name), or an\n * array of strings. This means that there can be a many-to-one relationship between\n * platform-specific node names and universal node names.\n */\nexport default {\n Alert: {\n ios: 'XCUIElementTypeAlert',\n android: 'android.widget.Toast',\n },\n App: {\n ios: 'XCUIElementTypeApplication',\n },\n Button: {\n ios: [\n 'XCUIElementTypeButton',\n 'XCUIElementTypeDecrementArrow',\n 'XCUIElementTypeIncrementArrow',\n 'XCUIElementTypeDisclosureTriangle',\n 'XCUIElementTypeHandle',\n 'XCUIElementTypeKey',\n 'XCUIElementTypeLink',\n 'XCUIElementTypeMenuButton',\n 'XCUIElementTypePageIndicator',\n 'XCUIElementTypePopUpButton',\n 'XCUIElementTypeToolbarButton',\n 'XCUIElementTypeRadioButton',\n 'XCUIElementTypeTab',\n ],\n android: [\n 'android.widget.Button',\n 'android.widget.ImageButton',\n 'android.widget.RadioButton',\n 'android.widget.QuickContactBadge',\n ],\n },\n Cell: {\n ios: 'XCUIElementTypeCell',\n },\n CheckBox: {\n ios: 'XCUIElementTypeCheckBox',\n android: 'android.widget.CheckBox',\n },\n Column: {\n ios: 'XCUIElementTypeTableColumn',\n },\n DateInput: {\n ios: 'XCUIElementTypeDatePicker',\n android: 'android.widget.DatePicker',\n },\n Element: {\n ios: [\n 'XCUIElementTypeOther',\n 'XCUIElementTypeAny',\n 'XCUIElementTypeMatte',\n 'XCUIElementTypeMenuBarItem',\n 'XCUIElementTypeMenuItem',\n 'XCUIElementTypeRuler',\n 'XCUIElementTypeRulerMarker',\n 'XCUIElementTypeSplitter',\n 'XCUIElementTypeStatusItem',\n 'XCUIElementTypeTimeline',\n ],\n android: ['android.widget.Space', 'android.widget.TwoLineListItem'],\n },\n Grid: {\n ios: 'XCUIElementTypeGrid',\n android: ['android.widget.GridLayout', 'android.widget.GridView'],\n },\n Icon: {\n ios: ['XCUIElementTypeIcon', 'XCUIElementTypeDockItem'],\n },\n Image: {\n ios: 'XCUIElementTypeImage',\n android: 'android.widget.ImageView',\n },\n Indicator: {\n ios: [\n 'XCUIElementTypeLevelIndicator',\n 'XCUIElementTypeProgressIndicator',\n 'XCUIElementTypeRatingIndicator',\n 'XCUIElementTypeRelevanceIndicator',\n 'XCUIElementTypeValueIndicator',\n ],\n android: ['android.widget.RatingBar', 'android.widget.ProgressBar'],\n },\n Input: {\n ios: ['XCUIElementTypeColorWell'],\n android: [],\n },\n List: {\n android: [\n 'android.widget.ListView',\n 'android.widget.ExpandableListView',\n 'android.widget.Gallery',\n ],\n ios: ['XCUIElementTypeCollectionView'],\n },\n Map: {\n ios: 'XCUIElementTypeMap',\n },\n Menu: {\n ios: ['XCUIElementTypeMenu', 'XCUIElementTypeMenuBar'],\n android: ['android.widget.ActionMenuView', 'android.widget.PopupMenu'],\n },\n Modal: {\n android: [\n 'android.widget.ListPopupWindow',\n 'android.widget.PopupWindow',\n 'android.widget.SlidingDrawer',\n 'android.widget.Magnifier',\n ],\n ios: ['XCUIElementTypeDrawer', 'XCUIElementTypeDialog', 'XCUIElementTypePopover'],\n },\n Nav: {\n ios: 'XCUIElementTypeNavigationBar',\n },\n PickerInput: {\n ios: 'XCUIElementTypePickerWheel',\n android: [\n 'android.widget.NumberPicker',\n 'android.widget.TimePicker',\n 'android.widget.CalendarView',\n ],\n },\n RadioInput: {\n ios: 'XCUIElementTypeRadioGroup',\n android: 'android.widget.RadioGroup',\n },\n Row: {\n ios: [\n 'XCUIElementTypeTableRow',\n 'XCUIElementTypeOutlineRow',\n 'XCUIElementTypeSegmentedControl',\n 'XCUIElementTypeTouchBar',\n ],\n android: 'android.widget.TableRow',\n },\n Scrollable: {\n ios: 'XCUIElementTypeScrollView',\n android: ['android.widget.ScrollView', 'android.widget.HorizontalScrollView'],\n },\n SearchInput: {\n android: 'android.widget.SearchView',\n ios: 'XCUIElementTypeSearchField',\n },\n SliderInput: {\n android: 'android.widget.SeekBar',\n ios: ['XCUIElementTypeSlider', 'XCUIElementTypeStepper', 'XCUIElementTypeScrollBar'],\n },\n Spinner: {\n ios: 'XCUIElementTypeActivityIndicator',\n android: 'android.widget.Spinner',\n },\n SwitchInput: {\n ios: 'XCUIElementTypeSwitch',\n android: 'android.widget.Switch',\n },\n Table: {\n ios: 'XCUIElementTypeTable',\n android: 'android.widget.TableLayout',\n },\n Text: {\n ios: ['XCUIElementTypeStaticText', 'XCUIElementTypeTextView', 'XCUIElementTypeHelpTag'],\n android: ['android.widget.TextView', 'android.widget.Chronometer', 'android.widget.TextClock'],\n },\n TextInput: {\n ios: ['XCUIElementTypeTextField', 'XCUIElementTypeSecureTextField', 'XCUIElementTypeComboBox'],\n android: [\n 'android.widget.EditText',\n 'android.widget.AutoCompleteTextView',\n 'android.widget.MultiAutoCompleteTextView',\n ],\n },\n ToggleInput: {\n ios: 'XCUIElementTypeToggle',\n android: ['android.widget.CheckedTextView', 'android.widget.ToggleButton'],\n },\n Toolbar: {\n ios: 'XCUIElementTypeToolbar',\n android: 'android.widget.Toolbar',\n },\n UI: {\n ios: 'AppiumAUT',\n android: 'hierarchy',\n },\n Video: {\n android: 'android.widget.VideoView',\n },\n View: {\n android: [\n 'android.widget.FrameLayout',\n 'android.widget.LinearLayout',\n 'android.widget.RelativeLayout',\n 'android.view.View',\n 'android.view.ViewGroup',\n 'android.widget.MediaController',\n 'android.widget.StackView',\n ],\n ios: [\n 'XCUIElementTypeBrowser',\n 'XCUIElementTypeGroup',\n 'XCUIElementTypeKeyboard',\n 'XCUIElementTypeLayoutArea',\n 'XCUIElementTypeLayoutItem',\n 'XCUIElementTypeOutline',\n 'XCUIElementTypePicker',\n 'XCUIElementTypeSheet',\n 'XCUIElementTypeSplitGroup',\n 'XCUIElementTypeStatusBar',\n 'XCUIElementTypeTabBar',\n 'XCUIElementTypeTabGroup',\n ],\n },\n WebView: {\n ios: 'XCUIElementTypeWebView',\n },\n Window: {\n ios: 'XCUIElementTypeWindow',\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"node-map.js","sourceRoot":"","sources":["../../lib/node-map.js"],"names":[],"mappings":"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"}
@@ -1,98 +1,86 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.UniversalXMLPlugin = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _plugin = _interopRequireDefault(require("appium/plugin"));
11
-
12
- var _driver = require("appium/driver");
13
-
14
- var _source = require("./source");
15
-
16
- var _xpath = require("./xpath");
17
-
18
- var _logger = _interopRequireDefault(require("./logger"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- class UniversalXMLPlugin extends _plugin.default {
23
- commands = ['getPageSource', 'findElement', 'findElements', 'findElementFromElement', 'findElementsFromElement'];
24
-
25
- async getPageSource(next, driver, sessId, addIndexPath = false) {
26
- const source = next ? await next() : await driver.getPageSource();
27
- const metadata = {};
28
- const {
29
- platformName
30
- } = driver.caps;
31
-
32
- if (platformName.toLowerCase() === 'android') {
33
- metadata.appPackage = driver.opts.appPackage;
2
+ /* eslint-disable no-case-declarations */
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.UniversalXMLPlugin = void 0;
8
+ const plugin_1 = __importDefault(require("appium/plugin"));
9
+ const driver_1 = require("appium/driver");
10
+ const source_1 = require("./source");
11
+ const xpath_1 = require("./xpath");
12
+ const logger_1 = __importDefault(require("./logger"));
13
+ class UniversalXMLPlugin extends plugin_1.default {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.commands = [
17
+ 'getPageSource',
18
+ 'findElement',
19
+ 'findElements',
20
+ 'findElementFromElement',
21
+ 'findElementsFromElement',
22
+ ];
34
23
  }
35
-
36
- const {
37
- xml,
38
- unknowns
39
- } = (0, _source.transformSourceXml)(source, platformName.toLowerCase(), {
40
- metadata,
41
- addIndexPath
42
- });
43
-
44
- if (unknowns.nodes.length) {
45
- _logger.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` + `tag name(s) that it didn't know about. These should be ` + `reported to improve the quality of the plugin: ` + unknowns.nodes.join(', '));
24
+ async getPageSource(next, driver, sessId, addIndexPath = false) {
25
+ const source = next ? await next() : await driver.getPageSource();
26
+ const metadata = {};
27
+ const { platformName } = driver.caps;
28
+ if (platformName.toLowerCase() === 'android') {
29
+ metadata.appPackage = driver.opts.appPackage;
30
+ }
31
+ const { xml, unknowns } = (0, source_1.transformSourceXml)(source, platformName.toLowerCase(), {
32
+ metadata,
33
+ addIndexPath,
34
+ });
35
+ if (unknowns.nodes.length) {
36
+ logger_1.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` +
37
+ `tag name(s) that it didn't know about. These should be ` +
38
+ `reported to improve the quality of the plugin: ` +
39
+ unknowns.nodes.join(', '));
40
+ }
41
+ if (unknowns.attrs.length) {
42
+ logger_1.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` +
43
+ `that it didn't know about. These should be reported to ` +
44
+ `improve the quality of the plugin: ` +
45
+ unknowns.attrs.join(', '));
46
+ }
47
+ return xml;
46
48
  }
47
-
48
- if (unknowns.attrs.length) {
49
- _logger.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` + `that it didn't know about. These should be reported to ` + `improve the quality of the plugin: ` + unknowns.attrs.join(', '));
49
+ async findElement(...args) {
50
+ return await this._find(false, ...args);
50
51
  }
51
-
52
- return xml;
53
- }
54
-
55
- async findElement(...args) {
56
- return await this._find(false, ...args);
57
- }
58
-
59
- async findElements(...args) {
60
- return await this._find(true, ...args);
61
- }
62
-
63
- async _find(multiple, next, driver, strategy, selector) {
64
- const {
65
- platformName
66
- } = driver.caps;
67
-
68
- if (strategy.toLowerCase() !== 'xpath') {
69
- return await next();
52
+ async findElements(...args) {
53
+ return await this._find(true, ...args);
70
54
  }
71
-
72
- const xml = await this.getPageSource(null, driver, null, true);
73
- let newSelector = (0, _xpath.transformQuery)(selector, xml, multiple);
74
-
75
- if (newSelector === null) {
76
- _logger.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` + `element does not exist or there was an error in translation`);
77
-
78
- if (multiple) {
79
- return [];
80
- }
81
-
82
- throw new _driver.errors.NoSuchElementError();
55
+ async _find(multiple, next, driver, strategy, selector) {
56
+ const { platformName } = driver.caps;
57
+ if (strategy.toLowerCase() !== 'xpath') {
58
+ return await next();
59
+ }
60
+ const xml = await this.getPageSource(null, driver, null, true);
61
+ let newSelector = (0, xpath_1.transformQuery)(selector, xml, multiple);
62
+ // if the selector was not able to be transformed, that means no elements were found that
63
+ // matched, so do the appropriate thing based on element vs elements
64
+ if (newSelector === null) {
65
+ logger_1.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` +
66
+ `element does not exist or there was an error in translation`);
67
+ if (multiple) {
68
+ return [];
69
+ }
70
+ throw new driver_1.errors.NoSuchElementError();
71
+ }
72
+ if (platformName.toLowerCase() === 'ios') {
73
+ // with the XCUITest driver, the <AppiumAUT> wrapper element is present in the source but is
74
+ // not present in the source considered by WDA, so our index path based xpath queries will
75
+ // not work with WDA as-is. We need to remove the first path segment.
76
+ newSelector = newSelector.replace(/^\/\*\[1\]/, '');
77
+ }
78
+ logger_1.default.info(`Selector was translated to: ${newSelector}`);
79
+ // otherwise just run the transformed query!
80
+ const finder = multiple ? 'findElements' : 'findElement';
81
+ return await driver[finder](strategy, newSelector);
83
82
  }
84
-
85
- if (platformName.toLowerCase() === 'ios') {
86
- newSelector = newSelector.replace(/^\/\*\[1\]/, '');
87
- }
88
-
89
- _logger.default.info(`Selector was translated to: ${newSelector}`);
90
-
91
- const finder = multiple ? 'findElements' : 'findElement';
92
- return await driver[finder](strategy, newSelector);
93
- }
94
-
95
83
  }
96
-
97
- exports.UniversalXMLPlugin = exports.default = UniversalXMLPlugin;
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVbml2ZXJzYWxYTUxQbHVnaW4iLCJCYXNlUGx1Z2luIiwiY29tbWFuZHMiLCJnZXRQYWdlU291cmNlIiwibmV4dCIsImRyaXZlciIsInNlc3NJZCIsImFkZEluZGV4UGF0aCIsInNvdXJjZSIsIm1ldGFkYXRhIiwicGxhdGZvcm1OYW1lIiwiY2FwcyIsInRvTG93ZXJDYXNlIiwiYXBwUGFja2FnZSIsIm9wdHMiLCJ4bWwiLCJ1bmtub3ducyIsInRyYW5zZm9ybVNvdXJjZVhtbCIsIm5vZGVzIiwibGVuZ3RoIiwibG9nIiwid2FybiIsImpvaW4iLCJhdHRycyIsImZpbmRFbGVtZW50IiwiYXJncyIsIl9maW5kIiwiZmluZEVsZW1lbnRzIiwibXVsdGlwbGUiLCJzdHJhdGVneSIsInNlbGVjdG9yIiwibmV3U2VsZWN0b3IiLCJ0cmFuc2Zvcm1RdWVyeSIsImVycm9ycyIsIk5vU3VjaEVsZW1lbnRFcnJvciIsInJlcGxhY2UiLCJpbmZvIiwiZmluZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsdWdpbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jYXNlLWRlY2xhcmF0aW9ucyAqL1xuXG5pbXBvcnQgQmFzZVBsdWdpbiBmcm9tICdhcHBpdW0vcGx1Z2luJztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCB7dHJhbnNmb3JtU291cmNlWG1sfSBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQge3RyYW5zZm9ybVF1ZXJ5fSBmcm9tICcuL3hwYXRoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVbml2ZXJzYWxYTUxQbHVnaW4gZXh0ZW5kcyBCYXNlUGx1Z2luIHtcbiAgY29tbWFuZHMgPSBbXG4gICAgJ2dldFBhZ2VTb3VyY2UnLFxuICAgICdmaW5kRWxlbWVudCcsXG4gICAgJ2ZpbmRFbGVtZW50cycsXG4gICAgJ2ZpbmRFbGVtZW50RnJvbUVsZW1lbnQnLFxuICAgICdmaW5kRWxlbWVudHNGcm9tRWxlbWVudCcsXG4gIF07XG5cbiAgYXN5bmMgZ2V0UGFnZVNvdXJjZShuZXh0LCBkcml2ZXIsIHNlc3NJZCwgYWRkSW5kZXhQYXRoID0gZmFsc2UpIHtcbiAgICBjb25zdCBzb3VyY2UgPSBuZXh0ID8gYXdhaXQgbmV4dCgpIDogYXdhaXQgZHJpdmVyLmdldFBhZ2VTb3VyY2UoKTtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHt9O1xuICAgIGNvbnN0IHtwbGF0Zm9ybU5hbWV9ID0gZHJpdmVyLmNhcHM7XG4gICAgaWYgKHBsYXRmb3JtTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYW5kcm9pZCcpIHtcbiAgICAgIG1ldGFkYXRhLmFwcFBhY2thZ2UgPSBkcml2ZXIub3B0cy5hcHBQYWNrYWdlO1xuICAgIH1cbiAgICBjb25zdCB7eG1sLCB1bmtub3duc30gPSB0cmFuc2Zvcm1Tb3VyY2VYbWwoc291cmNlLCBwbGF0Zm9ybU5hbWUudG9Mb3dlckNhc2UoKSwge1xuICAgICAgbWV0YWRhdGEsXG4gICAgICBhZGRJbmRleFBhdGgsXG4gICAgfSk7XG4gICAgaWYgKHVua25vd25zLm5vZGVzLmxlbmd0aCkge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBUaGUgWE1MIG1hcHBlciBmb3VuZCAke3Vua25vd25zLm5vZGVzLmxlbmd0aH0gbm9kZShzKSAvIGAgK1xuICAgICAgICAgIGB0YWcgbmFtZShzKSB0aGF0IGl0IGRpZG4ndCBrbm93IGFib3V0LiBUaGVzZSBzaG91bGQgYmUgYCArXG4gICAgICAgICAgYHJlcG9ydGVkIHRvIGltcHJvdmUgdGhlIHF1YWxpdHkgb2YgdGhlIHBsdWdpbjogYCArXG4gICAgICAgICAgdW5rbm93bnMubm9kZXMuam9pbignLCAnKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVua25vd25zLmF0dHJzLmxlbmd0aCkge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBUaGUgWE1MIG1hcHBlciBmb3VuZCAke3Vua25vd25zLmF0dHJzLmxlbmd0aH0gYXR0cmlidXRlcyBgICtcbiAgICAgICAgICBgdGhhdCBpdCBkaWRuJ3Qga25vdyBhYm91dC4gVGhlc2Ugc2hvdWxkIGJlIHJlcG9ydGVkIHRvIGAgK1xuICAgICAgICAgIGBpbXByb3ZlIHRoZSBxdWFsaXR5IG9mIHRoZSBwbHVnaW46IGAgK1xuICAgICAgICAgIHVua25vd25zLmF0dHJzLmpvaW4oJywgJylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB4bWw7XG4gIH1cblxuICBhc3luYyBmaW5kRWxlbWVudCguLi5hcmdzKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2ZpbmQoZmFsc2UsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZEVsZW1lbnRzKC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fZmluZCh0cnVlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIF9maW5kKG11bHRpcGxlLCBuZXh0LCBkcml2ZXIsIHN0cmF0ZWd5LCBzZWxlY3Rvcikge1xuICAgIGNvbnN0IHtwbGF0Zm9ybU5hbWV9ID0gZHJpdmVyLmNhcHM7XG4gICAgaWYgKHN0cmF0ZWd5LnRvTG93ZXJDYXNlKCkgIT09ICd4cGF0aCcpIHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXh0KCk7XG4gICAgfVxuICAgIGNvbnN0IHhtbCA9IGF3YWl0IHRoaXMuZ2V0UGFnZVNvdXJjZShudWxsLCBkcml2ZXIsIG51bGwsIHRydWUpO1xuICAgIGxldCBuZXdTZWxlY3RvciA9IHRyYW5zZm9ybVF1ZXJ5KHNlbGVjdG9yLCB4bWwsIG11bHRpcGxlKTtcblxuICAgIC8vIGlmIHRoZSBzZWxlY3RvciB3YXMgbm90IGFibGUgdG8gYmUgdHJhbnNmb3JtZWQsIHRoYXQgbWVhbnMgbm8gZWxlbWVudHMgd2VyZSBmb3VuZCB0aGF0XG4gICAgLy8gbWF0Y2hlZCwgc28gZG8gdGhlIGFwcHJvcHJpYXRlIHRoaW5nIGJhc2VkIG9uIGVsZW1lbnQgdnMgZWxlbWVudHNcbiAgICBpZiAobmV3U2VsZWN0b3IgPT09IG51bGwpIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBgU2VsZWN0b3Igd2FzIG5vdCBhYmxlIHRvIGJlIHRyYW5zbGF0ZWQgdG8gdW5kZXJseWluZyBYTUwuIEVpdGhlciB0aGUgcmVxdWVzdGVkIGAgK1xuICAgICAgICAgIGBlbGVtZW50IGRvZXMgbm90IGV4aXN0IG9yIHRoZXJlIHdhcyBhbiBlcnJvciBpbiB0cmFuc2xhdGlvbmBcbiAgICAgICk7XG4gICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob1N1Y2hFbGVtZW50RXJyb3IoKTtcbiAgICB9XG5cbiAgICBpZiAocGxhdGZvcm1OYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpb3MnKSB7XG4gICAgICAvLyB3aXRoIHRoZSBYQ1VJVGVzdCBkcml2ZXIsIHRoZSA8QXBwaXVtQVVUPiB3cmFwcGVyIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgc291cmNlIGJ1dCBpc1xuICAgICAgLy8gbm90IHByZXNlbnQgaW4gdGhlIHNvdXJjZSBjb25zaWRlcmVkIGJ5IFdEQSwgc28gb3VyIGluZGV4IHBhdGggYmFzZWQgeHBhdGggcXVlcmllcyB3aWxsXG4gICAgICAvLyBub3Qgd29yayB3aXRoIFdEQSBhcy1pcy4gV2UgbmVlZCB0byByZW1vdmUgdGhlIGZpcnN0IHBhdGggc2VnbWVudC5cbiAgICAgIG5ld1NlbGVjdG9yID0gbmV3U2VsZWN0b3IucmVwbGFjZSgvXlxcL1xcKlxcWzFcXF0vLCAnJyk7XG4gICAgfVxuICAgIGxvZy5pbmZvKGBTZWxlY3RvciB3YXMgdHJhbnNsYXRlZCB0bzogJHtuZXdTZWxlY3Rvcn1gKTtcblxuICAgIC8vIG90aGVyd2lzZSBqdXN0IHJ1biB0aGUgdHJhbnNmb3JtZWQgcXVlcnkhXG4gICAgY29uc3QgZmluZGVyID0gbXVsdGlwbGUgPyAnZmluZEVsZW1lbnRzJyA6ICdmaW5kRWxlbWVudCc7XG4gICAgcmV0dXJuIGF3YWl0IGRyaXZlcltmaW5kZXJdKHN0cmF0ZWd5LCBuZXdTZWxlY3Rvcik7XG4gIH1cbn1cblxuZXhwb3J0IHtVbml2ZXJzYWxYTUxQbHVnaW59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVlLE1BQU1BLGtCQUFOLFNBQWlDQyxlQUFqQyxDQUE0QztFQUN6REMsUUFBUSxHQUFHLENBQ1QsZUFEUyxFQUVULGFBRlMsRUFHVCxjQUhTLEVBSVQsd0JBSlMsRUFLVCx5QkFMUyxDQUFIOztFQVFXLE1BQWJDLGFBQWEsQ0FBQ0MsSUFBRCxFQUFPQyxNQUFQLEVBQWVDLE1BQWYsRUFBdUJDLFlBQVksR0FBRyxLQUF0QyxFQUE2QztJQUM5RCxNQUFNQyxNQUFNLEdBQUdKLElBQUksR0FBRyxNQUFNQSxJQUFJLEVBQWIsR0FBa0IsTUFBTUMsTUFBTSxDQUFDRixhQUFQLEVBQTNDO0lBQ0EsTUFBTU0sUUFBUSxHQUFHLEVBQWpCO0lBQ0EsTUFBTTtNQUFDQztJQUFELElBQWlCTCxNQUFNLENBQUNNLElBQTlCOztJQUNBLElBQUlELFlBQVksQ0FBQ0UsV0FBYixPQUErQixTQUFuQyxFQUE4QztNQUM1Q0gsUUFBUSxDQUFDSSxVQUFULEdBQXNCUixNQUFNLENBQUNTLElBQVAsQ0FBWUQsVUFBbEM7SUFDRDs7SUFDRCxNQUFNO01BQUNFLEdBQUQ7TUFBTUM7SUFBTixJQUFrQixJQUFBQywwQkFBQSxFQUFtQlQsTUFBbkIsRUFBMkJFLFlBQVksQ0FBQ0UsV0FBYixFQUEzQixFQUF1RDtNQUM3RUgsUUFENkU7TUFFN0VGO0lBRjZFLENBQXZELENBQXhCOztJQUlBLElBQUlTLFFBQVEsQ0FBQ0UsS0FBVCxDQUFlQyxNQUFuQixFQUEyQjtNQUN6QkMsZUFBQSxDQUFJQyxJQUFKLENBQ0csd0JBQXVCTCxRQUFRLENBQUNFLEtBQVQsQ0FBZUMsTUFBTyxhQUE5QyxHQUNHLHlEQURILEdBRUcsaURBRkgsR0FHRUgsUUFBUSxDQUFDRSxLQUFULENBQWVJLElBQWYsQ0FBb0IsSUFBcEIsQ0FKSjtJQU1EOztJQUNELElBQUlOLFFBQVEsQ0FBQ08sS0FBVCxDQUFlSixNQUFuQixFQUEyQjtNQUN6QkMsZUFBQSxDQUFJQyxJQUFKLENBQ0csd0JBQXVCTCxRQUFRLENBQUNPLEtBQVQsQ0FBZUosTUFBTyxjQUE5QyxHQUNHLHlEQURILEdBRUcscUNBRkgsR0FHRUgsUUFBUSxDQUFDTyxLQUFULENBQWVELElBQWYsQ0FBb0IsSUFBcEIsQ0FKSjtJQU1EOztJQUNELE9BQU9QLEdBQVA7RUFDRDs7RUFFZ0IsTUFBWFMsV0FBVyxDQUFDLEdBQUdDLElBQUosRUFBVTtJQUN6QixPQUFPLE1BQU0sS0FBS0MsS0FBTCxDQUFXLEtBQVgsRUFBa0IsR0FBR0QsSUFBckIsQ0FBYjtFQUNEOztFQUVpQixNQUFaRSxZQUFZLENBQUMsR0FBR0YsSUFBSixFQUFVO0lBQzFCLE9BQU8sTUFBTSxLQUFLQyxLQUFMLENBQVcsSUFBWCxFQUFpQixHQUFHRCxJQUFwQixDQUFiO0VBQ0Q7O0VBRVUsTUFBTEMsS0FBSyxDQUFDRSxRQUFELEVBQVd4QixJQUFYLEVBQWlCQyxNQUFqQixFQUF5QndCLFFBQXpCLEVBQW1DQyxRQUFuQyxFQUE2QztJQUN0RCxNQUFNO01BQUNwQjtJQUFELElBQWlCTCxNQUFNLENBQUNNLElBQTlCOztJQUNBLElBQUlrQixRQUFRLENBQUNqQixXQUFULE9BQTJCLE9BQS9CLEVBQXdDO01BQ3RDLE9BQU8sTUFBTVIsSUFBSSxFQUFqQjtJQUNEOztJQUNELE1BQU1XLEdBQUcsR0FBRyxNQUFNLEtBQUtaLGFBQUwsQ0FBbUIsSUFBbkIsRUFBeUJFLE1BQXpCLEVBQWlDLElBQWpDLEVBQXVDLElBQXZDLENBQWxCO0lBQ0EsSUFBSTBCLFdBQVcsR0FBRyxJQUFBQyxxQkFBQSxFQUFlRixRQUFmLEVBQXlCZixHQUF6QixFQUE4QmEsUUFBOUIsQ0FBbEI7O0lBSUEsSUFBSUcsV0FBVyxLQUFLLElBQXBCLEVBQTBCO01BQ3hCWCxlQUFBLENBQUlDLElBQUosQ0FDRyxpRkFBRCxHQUNHLDZEQUZMOztNQUlBLElBQUlPLFFBQUosRUFBYztRQUNaLE9BQU8sRUFBUDtNQUNEOztNQUNELE1BQU0sSUFBSUssY0FBQSxDQUFPQyxrQkFBWCxFQUFOO0lBQ0Q7O0lBRUQsSUFBSXhCLFlBQVksQ0FBQ0UsV0FBYixPQUErQixLQUFuQyxFQUEwQztNQUl4Q21CLFdBQVcsR0FBR0EsV0FBVyxDQUFDSSxPQUFaLENBQW9CLFlBQXBCLEVBQWtDLEVBQWxDLENBQWQ7SUFDRDs7SUFDRGYsZUFBQSxDQUFJZ0IsSUFBSixDQUFVLCtCQUE4QkwsV0FBWSxFQUFwRDs7SUFHQSxNQUFNTSxNQUFNLEdBQUdULFFBQVEsR0FBRyxjQUFILEdBQW9CLGFBQTNDO0lBQ0EsT0FBTyxNQUFNdkIsTUFBTSxDQUFDZ0MsTUFBRCxDQUFOLENBQWVSLFFBQWYsRUFBeUJFLFdBQXpCLENBQWI7RUFDRDs7QUEvRXdEIn0=
84
+ exports.default = UniversalXMLPlugin;
85
+ exports.UniversalXMLPlugin = UniversalXMLPlugin;
86
+ //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","names":["UniversalXMLPlugin","BasePlugin","commands","getPageSource","next","driver","sessId","addIndexPath","source","metadata","platformName","caps","toLowerCase","appPackage","opts","xml","unknowns","transformSourceXml","nodes","length","log","warn","join","attrs","findElement","args","_find","findElements","multiple","strategy","selector","newSelector","transformQuery","errors","NoSuchElementError","replace","info","finder"],"sources":["../../lib/plugin.js"],"sourcesContent":["/* eslint-disable no-case-declarations */\n\nimport BasePlugin from 'appium/plugin';\nimport {errors} from 'appium/driver';\nimport {transformSourceXml} from './source';\nimport {transformQuery} from './xpath';\nimport log from './logger';\n\nexport default class UniversalXMLPlugin extends BasePlugin {\n commands = [\n 'getPageSource',\n 'findElement',\n 'findElements',\n 'findElementFromElement',\n 'findElementsFromElement',\n ];\n\n async getPageSource(next, driver, sessId, addIndexPath = false) {\n const source = next ? await next() : await driver.getPageSource();\n const metadata = {};\n const {platformName} = driver.caps;\n if (platformName.toLowerCase() === 'android') {\n metadata.appPackage = driver.opts.appPackage;\n }\n const {xml, unknowns} = transformSourceXml(source, platformName.toLowerCase(), {\n metadata,\n addIndexPath,\n });\n if (unknowns.nodes.length) {\n log.warn(\n `The XML mapper found ${unknowns.nodes.length} node(s) / ` +\n `tag name(s) that it didn't know about. These should be ` +\n `reported to improve the quality of the plugin: ` +\n unknowns.nodes.join(', ')\n );\n }\n if (unknowns.attrs.length) {\n log.warn(\n `The XML mapper found ${unknowns.attrs.length} attributes ` +\n `that it didn't know about. These should be reported to ` +\n `improve the quality of the plugin: ` +\n unknowns.attrs.join(', ')\n );\n }\n return xml;\n }\n\n async findElement(...args) {\n return await this._find(false, ...args);\n }\n\n async findElements(...args) {\n return await this._find(true, ...args);\n }\n\n async _find(multiple, next, driver, strategy, selector) {\n const {platformName} = driver.caps;\n if (strategy.toLowerCase() !== 'xpath') {\n return await next();\n }\n const xml = await this.getPageSource(null, driver, null, true);\n let newSelector = transformQuery(selector, xml, multiple);\n\n // if the selector was not able to be transformed, that means no elements were found that\n // matched, so do the appropriate thing based on element vs elements\n if (newSelector === null) {\n log.warn(\n `Selector was not able to be translated to underlying XML. Either the requested ` +\n `element does not exist or there was an error in translation`\n );\n if (multiple) {\n return [];\n }\n throw new errors.NoSuchElementError();\n }\n\n if (platformName.toLowerCase() === 'ios') {\n // with the XCUITest driver, the <AppiumAUT> wrapper element is present in the source but is\n // not present in the source considered by WDA, so our index path based xpath queries will\n // not work with WDA as-is. We need to remove the first path segment.\n newSelector = newSelector.replace(/^\\/\\*\\[1\\]/, '');\n }\n log.info(`Selector was translated to: ${newSelector}`);\n\n // otherwise just run the transformed query!\n const finder = multiple ? 'findElements' : 'findElement';\n return await driver[finder](strategy, newSelector);\n }\n}\n\nexport {UniversalXMLPlugin};\n"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"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"}