appium-espresso-driver 2.23.5 → 2.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +19 -0
- package/build/lib/commands/execute.js +3 -2
- package/build/lib/commands/execute.js.map +1 -1
- package/build/lib/commands/index.js +3 -2
- package/build/lib/commands/index.js.map +1 -1
- package/build/lib/commands/screenshot.js +56 -0
- package/build/lib/commands/screenshot.js.map +1 -0
- package/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk +0 -0
- package/lib/commands/execute.js +2 -0
- package/lib/commands/index.js +2 -0
- package/lib/commands/screenshot.js +79 -0
- package/npm-shrinkwrap.json +5 -5
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [2.24.0](https://github.com/appium/appium-espresso-driver/compare/v2.23.5...v2.24.0) (2023-06-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Add 'mobile: screenshots' extension ([#890](https://github.com/appium/appium-espresso-driver/issues/890)) ([1989c14](https://github.com/appium/appium-espresso-driver/commit/1989c14d675f6628a78b1c57dc715b7af7bec9b0))
|
|
7
|
+
|
|
1
8
|
## [2.23.5](https://github.com/appium/appium-espresso-driver/compare/v2.23.4...v2.23.5) (2023-06-23)
|
|
2
9
|
|
|
3
10
|
|
package/README.md
CHANGED
|
@@ -1510,6 +1510,25 @@ Example output for different data types:
|
|
|
1510
1510
|
]
|
|
1511
1511
|
```
|
|
1512
1512
|
|
|
1513
|
+
### mobile: screenshots
|
|
1514
|
+
|
|
1515
|
+
Retrieves a screenshot of each display available to Android.
|
|
1516
|
+
This functionality is only supported since Android 10.
|
|
1517
|
+
|
|
1518
|
+
#### Arguments
|
|
1519
|
+
|
|
1520
|
+
Name | Type | Required | Description | Example
|
|
1521
|
+
--- | --- | --- | --- | ---
|
|
1522
|
+
displayId | number or string | no | Display identifier to take a screenshot for. If not provided then all display screenshots are going to be returned. If no matches were found then an error is thrown. Actual display identifiers could be retrived from the `adb shell dumpsys SurfaceFlinger --display-id` command output. | 1
|
|
1523
|
+
|
|
1524
|
+
#### Returns
|
|
1525
|
+
|
|
1526
|
+
A dictionary where each key is the diplay identifier and the value has the following keys:
|
|
1527
|
+
- `id`: The same display identifier
|
|
1528
|
+
- `name`: Display name
|
|
1529
|
+
- `isDefault`: Whether this display is the default one
|
|
1530
|
+
- `payload`: The actual PNG screenshot data encoded to base64 string
|
|
1531
|
+
|
|
1513
1532
|
### mobile: statusBar
|
|
1514
1533
|
|
|
1515
1534
|
Performs commands on the system status bar. A thin wrapper over `adb shell cmd statusbar` CLI. Works on Android 8 (Oreo) and newer. Available since driver version 2.23
|
|
@@ -87,7 +87,8 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
87
87
|
sensorSet: 'sensorSet',
|
|
88
88
|
getPerformanceData: 'mobileGetPerformanceData',
|
|
89
89
|
getPerformanceDataTypes: 'getPerformanceDataTypes',
|
|
90
|
-
statusBar: 'mobilePerformStatusBarCommand'
|
|
90
|
+
statusBar: 'mobilePerformStatusBarCommand',
|
|
91
|
+
screenshots: 'mobileScreenshots'
|
|
91
92
|
};
|
|
92
93
|
if (!_lodash.default.has(mobileCommandsMapping, mobileCommand)) {
|
|
93
94
|
throw new _driver.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` + `Only ${_lodash.default.keys(mobileCommandsMapping)} commands are supported.`);
|
|
@@ -96,4 +97,4 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
96
97
|
};
|
|
97
98
|
var _default = extensions;
|
|
98
99
|
exports.default = _default;
|
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZHJpdmVyIiwiZXh0ZW5zaW9ucyIsImV4ZWN1dGVNb2JpbGUiLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsIm1vYmlsZUNvbW1hbmRzTWFwcGluZyIsInNoZWxsIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIiwicGVyZm9ybUVkaXRvckFjdGlvbiIsImNoYW5nZVBlcm1pc3Npb25zIiwiZ2V0UGVybWlzc2lvbnMiLCJzdGFydFNjcmVlblN0cmVhbWluZyIsInN0b3BTY3JlZW5TdHJlYW1pbmciLCJzd2lwZSIsInNjcm9sbFRvUGFnZSIsIm5hdmlnYXRlVG8iLCJjbGlja0FjdGlvbiIsImRldmljZUluZm8iLCJpc1RvYXN0VmlzaWJsZSIsIm9wZW5EcmF3ZXIiLCJjbG9zZURyYXdlciIsInNldERhdGUiLCJzZXRUaW1lIiwiZ2V0RGV2aWNlVGltZSIsImJhY2tkb29yIiwiZmxhc2hFbGVtZW50IiwidWlhdXRvbWF0b3IiLCJ1aWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJ3ZWJBdG9tcyIsImdldENvbnRleHRzIiwiZGlzbWlzc0F1dG9maWxsIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJwdXNoRmlsZSIsInB1bGxGaWxlIiwicHVsbEZvbGRlciIsImRlbGV0ZUZpbGUiLCJpc0FwcEluc3RhbGxlZCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsInJlbW92ZUFwcCIsInRlcm1pbmF0ZUFwcCIsImluc3RhbGxBcHAiLCJjbGVhckFwcCIsImJhY2tncm91bmRBcHAiLCJnZXRDdXJyZW50QWN0aXZpdHkiLCJnZXRDdXJyZW50UGFja2FnZSIsInN0YXJ0QWN0aXZpdHkiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsImJyb2FkY2FzdCIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ3YWl0Rm9yVUlUaHJlYWQiLCJsb2NrIiwidW5sb2NrIiwiaXNMb2NrZWQiLCJyZWZyZXNoR3BzQ2FjaGUiLCJzdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsImlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZyIsInN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmciLCJnZXRDb25uZWN0aXZpdHkiLCJzZXRDb25uZWN0aXZpdHkiLCJ0b2dnbGVHcHMiLCJpc0dwc0VuYWJsZXMiLCJwcmVzc0tleSIsImhpZGVLZXlib2FyZCIsImlzS2V5Ym9hcmRTaG93biIsImdldERpc3BsYXlEZW5zaXR5IiwiZ2V0U3lzdGVtQmFycyIsImZpbmdlcnByaW50Iiwic2VuZFNtcyIsImdzbUNhbGwiLCJnc21TaWduYWwiLCJnc21Wb2ljZSIsInBvd2VyQWMiLCJwb3dlckNhcGFjaXR5IiwibmV0d29ya1NwZWVkIiwic2Vuc29yU2V0IiwiZ2V0UGVyZm9ybWFuY2VEYXRhIiwiZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXMiLCJzdGF0dXNCYXIiLCJfIiwiaGFzIiwiZXJyb3JzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBzdGFydFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0YXJ0U2NyZWVuU3RyZWFtaW5nJyxcbiAgICBzdG9wU2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZycsXG5cbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICBzY3JvbGxUb1BhZ2U6ICdtb2JpbGVTY3JvbGxUb1BhZ2UnLFxuICAgIG5hdmlnYXRlVG86ICdtb2JpbGVOYXZpZ2F0ZVRvJyxcbiAgICBjbGlja0FjdGlvbjogJ21vYmlsZUNsaWNrQWN0aW9uJyxcblxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcblxuICAgIGlzVG9hc3RWaXNpYmxlOiAnbW9iaWxlSXNUb2FzdFZpc2libGUnLFxuXG4gICAgb3BlbkRyYXdlcjogJ21vYmlsZU9wZW5EcmF3ZXInLFxuICAgIGNsb3NlRHJhd2VyOiAnbW9iaWxlQ2xvc2VEcmF3ZXInLFxuXG4gICAgc2V0RGF0ZTogJ21vYmlsZVNldERhdGUnLFxuICAgIHNldFRpbWU6ICdtb2JpbGVTZXRUaW1lJyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIGJhY2tkb29yOiAnbW9iaWxlQmFja2Rvb3InLFxuXG4gICAgZmxhc2hFbGVtZW50OiAnbW9iaWxlRmxhc2hFbGVtZW50JyxcblxuICAgIHVpYXV0b21hdG9yOiAnbW9iaWxlVWlhdXRvbWF0b3InLFxuICAgIHVpYXV0b21hdG9yUGFnZVNvdXJjZTogJ21vYmlsZVVpYXV0b21hdG9yUGFnZVNvdXJjZScsXG5cbiAgICB3ZWJBdG9tczogJ21vYmlsZVdlYkF0b21zJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIGRpc21pc3NBdXRvZmlsbDogJ21vYmlsZURpc21pc3NBdXRvZmlsbCcsXG5cbiAgICBnZXROb3RpZmljYXRpb25zOiAnbW9iaWxlR2V0Tm90aWZpY2F0aW9ucycsXG5cbiAgICBsaXN0U21zOiAnbW9iaWxlTGlzdFNtcycsXG5cbiAgICBwdXNoRmlsZTogJ21vYmlsZVB1c2hGaWxlJyxcbiAgICBwdWxsRmlsZTogJ21vYmlsZVB1bGxGaWxlJyxcbiAgICBwdWxsRm9sZGVyOiAnbW9iaWxlUHVsbEZvbGRlcicsXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgaXNBcHBJbnN0YWxsZWQ6ICdtb2JpbGVJc0FwcEluc3RhbGxlZCcsXG4gICAgcXVlcnlBcHBTdGF0ZTogJ21vYmlsZVF1ZXJ5QXBwU3RhdGUnLFxuICAgIGFjdGl2YXRlQXBwOiAnbW9iaWxlQWN0aXZhdGVBcHAnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgdGVybWluYXRlQXBwOiAnbW9iaWxlVGVybWluYXRlQXBwJyxcbiAgICBpbnN0YWxsQXBwOiAnbW9iaWxlSW5zdGFsbEFwcCcsXG4gICAgY2xlYXJBcHA6ICdtb2JpbGVDbGVhckFwcCcsXG4gICAgYmFja2dyb3VuZEFwcDogJ21vYmlsZUJhY2tncm91bmRBcHAnLFxuICAgIGdldEN1cnJlbnRBY3Rpdml0eTogJ2dldEN1cnJlbnRBY3Rpdml0eScsXG4gICAgZ2V0Q3VycmVudFBhY2thZ2U6ICdnZXRDdXJyZW50UGFja2FnZScsXG5cbiAgICBzdGFydEFjdGl2aXR5OiAnbW9iaWxlU3RhcnRBY3Rpdml0eScsXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcbiAgICBicm9hZGNhc3Q6ICdtb2JpbGVCcm9hZGNhc3QnLFxuXG4gICAgcmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcycsXG4gICAgdW5yZWdpc3RlcklkbGluZ1Jlc291cmNlczogJ21vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIGxpc3RJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzJyxcbiAgICB3YWl0Rm9yVUlUaHJlYWQ6ICdtb2JpbGVXYWl0Rm9yVUlUaHJlYWQnLFxuXG4gICAgbG9jazogJ21vYmlsZUxvY2snLFxuICAgIHVubG9jazogJ21vYmlsZVVubG9jaycsXG4gICAgaXNMb2NrZWQ6ICdpc0xvY2tlZCcsXG5cbiAgICByZWZyZXNoR3BzQ2FjaGU6ICdtb2JpbGVSZWZyZXNoR3BzQ2FjaGUnLFxuXG4gICAgc3RhcnRNZWRpYVByb2plY3Rpb25SZWNvcmRpbmc6ICdtb2JpbGVTdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZycsXG4gICAgaXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nOiAnbW9iaWxlSXNNZWRpYVByb2plY3Rpb25SZWNvcmRpbmdSdW5uaW5nJyxcbiAgICBzdG9wTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nOiAnbW9iaWxlU3RvcE1lZGlhUHJvamVjdGlvblJlY29yZGluZycsXG5cbiAgICBnZXRDb25uZWN0aXZpdHk6ICdtb2JpbGVHZXRDb25uZWN0aXZpdHknLFxuICAgIHNldENvbm5lY3Rpdml0eTogJ21vYmlsZVNldENvbm5lY3Rpdml0eScsXG4gICAgdG9nZ2xlR3BzOiAndG9nZ2xlTG9jYXRpb25TZXJ2aWNlcycsXG4gICAgaXNHcHNFbmFibGVzOiAnaXNMb2NhdGlvblNlcnZpY2VzRW5hYmxlZCcsXG5cbiAgICBwcmVzc0tleTogJ21vYmlsZVByZXNzS2V5JyxcbiAgICBoaWRlS2V5Ym9hcmQ6ICdoaWRlS2V5Ym9hcmQnLFxuICAgIGlzS2V5Ym9hcmRTaG93bjogJ2lzS2V5Ym9hcmRTaG93bicsXG5cbiAgICBnZXREaXNwbGF5RGVuc2l0eTogJ2dldERpc3BsYXlEZW5zaXR5JyxcbiAgICBnZXRTeXN0ZW1CYXJzOiAnZ2V0U3lzdGVtQmFycycsXG4gICAgZmluZ2VycHJpbnQ6ICdtb2JpbGVGaW5nZXJwcmludCcsXG5cbiAgICBzZW5kU21zOiAnbW9iaWxlU2VuZFNtcycsXG4gICAgZ3NtQ2FsbDogJ21vYmlsZUdzbUNhbGwnLFxuICAgIGdzbVNpZ25hbDogJ21vYmlsZUdzbVNpZ25hbCcsXG4gICAgZ3NtVm9pY2U6ICdtb2JpbGVHc21Wb2ljZScsXG4gICAgcG93ZXJBYzogJ21vYmlsZVBvd2VyQUMnLFxuICAgIHBvd2VyQ2FwYWNpdHk6ICdtb2JpbGVQb3dlckNhcGFjaXR5JyxcbiAgICBuZXR3b3JrU3BlZWQ6ICdtb2JpbGVOZXR3b3JrU3BlZWQnLFxuICAgIHNlbnNvclNldDogJ3NlbnNvclNldCcsXG5cbiAgICBnZXRQZXJmb3JtYW5jZURhdGE6ICdtb2JpbGVHZXRQZXJmb3JtYW5jZURhdGEnLFxuICAgIGdldFBlcmZvcm1hbmNlRGF0YVR5cGVzOiAnZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXMnLFxuXG4gICAgc3RhdHVzQmFyOiAnbW9iaWxlUGVyZm9ybVN0YXR1c0JhckNvbW1hbmQnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNp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
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZHJpdmVyIiwiZXh0ZW5zaW9ucyIsImV4ZWN1dGVNb2JpbGUiLCJtb2JpbGVDb21tYW5kIiwib3B0cyIsIm1vYmlsZUNvbW1hbmRzTWFwcGluZyIsInNoZWxsIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIiwicGVyZm9ybUVkaXRvckFjdGlvbiIsImNoYW5nZVBlcm1pc3Npb25zIiwiZ2V0UGVybWlzc2lvbnMiLCJzdGFydFNjcmVlblN0cmVhbWluZyIsInN0b3BTY3JlZW5TdHJlYW1pbmciLCJzd2lwZSIsInNjcm9sbFRvUGFnZSIsIm5hdmlnYXRlVG8iLCJjbGlja0FjdGlvbiIsImRldmljZUluZm8iLCJpc1RvYXN0VmlzaWJsZSIsIm9wZW5EcmF3ZXIiLCJjbG9zZURyYXdlciIsInNldERhdGUiLCJzZXRUaW1lIiwiZ2V0RGV2aWNlVGltZSIsImJhY2tkb29yIiwiZmxhc2hFbGVtZW50IiwidWlhdXRvbWF0b3IiLCJ1aWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJ3ZWJBdG9tcyIsImdldENvbnRleHRzIiwiZGlzbWlzc0F1dG9maWxsIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJwdXNoRmlsZSIsInB1bGxGaWxlIiwicHVsbEZvbGRlciIsImRlbGV0ZUZpbGUiLCJpc0FwcEluc3RhbGxlZCIsInF1ZXJ5QXBwU3RhdGUiLCJhY3RpdmF0ZUFwcCIsInJlbW92ZUFwcCIsInRlcm1pbmF0ZUFwcCIsImluc3RhbGxBcHAiLCJjbGVhckFwcCIsImJhY2tncm91bmRBcHAiLCJnZXRDdXJyZW50QWN0aXZpdHkiLCJnZXRDdXJyZW50UGFja2FnZSIsInN0YXJ0QWN0aXZpdHkiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsImJyb2FkY2FzdCIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ3YWl0Rm9yVUlUaHJlYWQiLCJsb2NrIiwidW5sb2NrIiwiaXNMb2NrZWQiLCJyZWZyZXNoR3BzQ2FjaGUiLCJzdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZyIsImlzTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nUnVubmluZyIsInN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmciLCJnZXRDb25uZWN0aXZpdHkiLCJzZXRDb25uZWN0aXZpdHkiLCJ0b2dnbGVHcHMiLCJpc0dwc0VuYWJsZXMiLCJwcmVzc0tleSIsImhpZGVLZXlib2FyZCIsImlzS2V5Ym9hcmRTaG93biIsImdldERpc3BsYXlEZW5zaXR5IiwiZ2V0U3lzdGVtQmFycyIsImZpbmdlcnByaW50Iiwic2VuZFNtcyIsImdzbUNhbGwiLCJnc21TaWduYWwiLCJnc21Wb2ljZSIsInBvd2VyQWMiLCJwb3dlckNhcGFjaXR5IiwibmV0d29ya1NwZWVkIiwic2Vuc29yU2V0IiwiZ2V0UGVyZm9ybWFuY2VEYXRhIiwiZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXMiLCJzdGF0dXNCYXIiLCJzY3JlZW5zaG90cyIsIl8iLCJoYXMiLCJlcnJvcnMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvZXhlY3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBjaGFuZ2VQZXJtaXNzaW9uczogJ21vYmlsZUNoYW5nZVBlcm1pc3Npb25zJyxcbiAgICBnZXRQZXJtaXNzaW9uczogJ21vYmlsZUdldFBlcm1pc3Npb25zJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIHN3aXBlOiAnbW9iaWxlU3dpcGUnLFxuICAgIHNjcm9sbFRvUGFnZTogJ21vYmlsZVNjcm9sbFRvUGFnZScsXG4gICAgbmF2aWdhdGVUbzogJ21vYmlsZU5hdmlnYXRlVG8nLFxuICAgIGNsaWNrQWN0aW9uOiAnbW9iaWxlQ2xpY2tBY3Rpb24nLFxuXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuXG4gICAgaXNUb2FzdFZpc2libGU6ICdtb2JpbGVJc1RvYXN0VmlzaWJsZScsXG5cbiAgICBvcGVuRHJhd2VyOiAnbW9iaWxlT3BlbkRyYXdlcicsXG4gICAgY2xvc2VEcmF3ZXI6ICdtb2JpbGVDbG9zZURyYXdlcicsXG5cbiAgICBzZXREYXRlOiAnbW9iaWxlU2V0RGF0ZScsXG4gICAgc2V0VGltZTogJ21vYmlsZVNldFRpbWUnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgYmFja2Rvb3I6ICdtb2JpbGVCYWNrZG9vcicsXG5cbiAgICBmbGFzaEVsZW1lbnQ6ICdtb2JpbGVGbGFzaEVsZW1lbnQnLFxuXG4gICAgdWlhdXRvbWF0b3I6ICdtb2JpbGVVaWF1dG9tYXRvcicsXG4gICAgdWlhdXRvbWF0b3JQYWdlU291cmNlOiAnbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlJyxcblxuICAgIHdlYkF0b21zOiAnbW9iaWxlV2ViQXRvbXMnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgZGlzbWlzc0F1dG9maWxsOiAnbW9iaWxlRGlzbWlzc0F1dG9maWxsJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIHB1c2hGaWxlOiAnbW9iaWxlUHVzaEZpbGUnLFxuICAgIHB1bGxGaWxlOiAnbW9iaWxlUHVsbEZpbGUnLFxuICAgIHB1bGxGb2xkZXI6ICdtb2JpbGVQdWxsRm9sZGVyJyxcbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG5cbiAgICBpc0FwcEluc3RhbGxlZDogJ21vYmlsZUlzQXBwSW5zdGFsbGVkJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgcmVtb3ZlQXBwOiAnbW9iaWxlUmVtb3ZlQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGluc3RhbGxBcHA6ICdtb2JpbGVJbnN0YWxsQXBwJyxcbiAgICBjbGVhckFwcDogJ21vYmlsZUNsZWFyQXBwJyxcbiAgICBiYWNrZ3JvdW5kQXBwOiAnbW9iaWxlQmFja2dyb3VuZEFwcCcsXG4gICAgZ2V0Q3VycmVudEFjdGl2aXR5OiAnZ2V0Q3VycmVudEFjdGl2aXR5JyxcbiAgICBnZXRDdXJyZW50UGFja2FnZTogJ2dldEN1cnJlbnRQYWNrYWdlJyxcblxuICAgIHN0YXJ0QWN0aXZpdHk6ICdtb2JpbGVTdGFydEFjdGl2aXR5JyxcbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuICAgIGJyb2FkY2FzdDogJ21vYmlsZUJyb2FkY2FzdCcsXG5cbiAgICByZWdpc3RlcklkbGluZ1Jlc291cmNlczogJ21vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzJyxcbiAgICB1bnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcycsXG4gICAgbGlzdElkbGluZ1Jlc291cmNlczogJ21vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMnLFxuICAgIHdhaXRGb3JVSVRocmVhZDogJ21vYmlsZVdhaXRGb3JVSVRocmVhZCcsXG5cbiAgICBsb2NrOiAnbW9iaWxlTG9jaycsXG4gICAgdW5sb2NrOiAnbW9iaWxlVW5sb2NrJyxcbiAgICBpc0xvY2tlZDogJ2lzTG9ja2VkJyxcblxuICAgIHJlZnJlc2hHcHNDYWNoZTogJ21vYmlsZVJlZnJlc2hHcHNDYWNoZScsXG5cbiAgICBzdGFydE1lZGlhUHJvamVjdGlvblJlY29yZGluZzogJ21vYmlsZVN0YXJ0TWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nJyxcbiAgICBpc01lZGlhUHJvamVjdGlvblJlY29yZGluZ1J1bm5pbmc6ICdtb2JpbGVJc01lZGlhUHJvamVjdGlvblJlY29yZGluZ1J1bm5pbmcnLFxuICAgIHN0b3BNZWRpYVByb2plY3Rpb25SZWNvcmRpbmc6ICdtb2JpbGVTdG9wTWVkaWFQcm9qZWN0aW9uUmVjb3JkaW5nJyxcblxuICAgIGdldENvbm5lY3Rpdml0eTogJ21vYmlsZUdldENvbm5lY3Rpdml0eScsXG4gICAgc2V0Q29ubmVjdGl2aXR5OiAnbW9iaWxlU2V0Q29ubmVjdGl2aXR5JyxcbiAgICB0b2dnbGVHcHM6ICd0b2dnbGVMb2NhdGlvblNlcnZpY2VzJyxcbiAgICBpc0dwc0VuYWJsZXM6ICdpc0xvY2F0aW9uU2VydmljZXNFbmFibGVkJyxcblxuICAgIHByZXNzS2V5OiAnbW9iaWxlUHJlc3NLZXknLFxuICAgIGhpZGVLZXlib2FyZDogJ2hpZGVLZXlib2FyZCcsXG4gICAgaXNLZXlib2FyZFNob3duOiAnaXNLZXlib2FyZFNob3duJyxcblxuICAgIGdldERpc3BsYXlEZW5zaXR5OiAnZ2V0RGlzcGxheURlbnNpdHknLFxuICAgIGdldFN5c3RlbUJhcnM6ICdnZXRTeXN0ZW1CYXJzJyxcbiAgICBmaW5nZXJwcmludDogJ21vYmlsZUZpbmdlcnByaW50JyxcblxuICAgIHNlbmRTbXM6ICdtb2JpbGVTZW5kU21zJyxcbiAgICBnc21DYWxsOiAnbW9iaWxlR3NtQ2FsbCcsXG4gICAgZ3NtU2lnbmFsOiAnbW9iaWxlR3NtU2lnbmFsJyxcbiAgICBnc21Wb2ljZTogJ21vYmlsZUdzbVZvaWNlJyxcbiAgICBwb3dlckFjOiAnbW9iaWxlUG93ZXJBQycsXG4gICAgcG93ZXJDYXBhY2l0eTogJ21vYmlsZVBvd2VyQ2FwYWNpdHknLFxuICAgIG5ldHdvcmtTcGVlZDogJ21vYmlsZU5ldHdvcmtTcGVlZCcsXG4gICAgc2Vuc29yU2V0OiAnc2Vuc29yU2V0JyxcblxuICAgIGdldFBlcmZvcm1hbmNlRGF0YTogJ21vYmlsZUdldFBlcmZvcm1hbmNlRGF0YScsXG4gICAgZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXM6ICdnZXRQZXJmb3JtYW5jZURhdGFUeXBlcycsXG5cbiAgICBzdGF0dXNCYXI6ICdtb2JpbGVQZXJmb3JtU3RhdHVzQmFyQ29tbWFuZCcsXG5cbiAgICBzY3JlZW5zaG90czogJ21vYmlsZVNjcmVlbnNob3RzJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKG1vYmlsZUNvbW1hbmRzTWFwcGluZywgbW9iaWxlQ29tbWFuZCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3IoYFVua25vd24gbW9iaWxlIGNvbW1hbmQgXCIke21vYmlsZUNvbW1hbmR9XCIuIGAgK1xuICAgICAgYE9ubHkgJHtfLmtleXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nKX0gY29tbWFuZHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpc1ttb2JpbGVDb21tYW5kc01hcHBp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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","names":["_lodash","_interopRequireDefault","require","_driver","extensions","executeMobile","mobileCommand","opts","mobileCommandsMapping","shell","execEmuConsoleCommand","performEditorAction","changePermissions","getPermissions","startScreenStreaming","stopScreenStreaming","swipe","scrollToPage","navigateTo","clickAction","deviceInfo","isToastVisible","openDrawer","closeDrawer","setDate","setTime","getDeviceTime","backdoor","flashElement","uiautomator","uiautomatorPageSource","webAtoms","getContexts","dismissAutofill","getNotifications","listSms","pushFile","pullFile","pullFolder","deleteFile","isAppInstalled","queryAppState","activateApp","removeApp","terminateApp","installApp","clearApp","backgroundApp","getCurrentActivity","getCurrentPackage","startActivity","startService","stopService","broadcast","registerIdlingResources","unregisterIdlingResources","listIdlingResources","waitForUIThread","lock","unlock","isLocked","refreshGpsCache","startMediaProjectionRecording","isMediaProjectionRecordingRunning","stopMediaProjectionRecording","getConnectivity","setConnectivity","toggleGps","isGpsEnables","pressKey","hideKeyboard","isKeyboardShown","getDisplayDensity","getSystemBars","fingerprint","sendSms","gsmCall","gsmSignal","gsmVoice","powerAc","powerCapacity","networkSpeed","sensorSet","getPerformanceData","getPerformanceDataTypes","statusBar","_","has","errors","UnknownCommandError","keys","_default","exports","default"],"sources":["../../../lib/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport { errors } from 'appium/driver';\n\nconst extensions = {};\n\nextensions.executeMobile = async function executeMobile (mobileCommand, opts = {}) {\n const mobileCommandsMapping = {\n shell: 'mobileShell',\n\n execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',\n\n performEditorAction: 'mobilePerformEditorAction',\n\n changePermissions: 'mobileChangePermissions',\n getPermissions: 'mobileGetPermissions',\n\n startScreenStreaming: 'mobileStartScreenStreaming',\n stopScreenStreaming: 'mobileStopScreenStreaming',\n\n swipe: 'mobileSwipe',\n scrollToPage: 'mobileScrollToPage',\n navigateTo: 'mobileNavigateTo',\n clickAction: 'mobileClickAction',\n\n deviceInfo: 'mobileGetDeviceInfo',\n\n isToastVisible: 'mobileIsToastVisible',\n\n openDrawer: 'mobileOpenDrawer',\n closeDrawer: 'mobileCloseDrawer',\n\n setDate: 'mobileSetDate',\n setTime: 'mobileSetTime',\n\n getDeviceTime: 'mobileGetDeviceTime',\n\n backdoor: 'mobileBackdoor',\n\n flashElement: 'mobileFlashElement',\n\n uiautomator: 'mobileUiautomator',\n uiautomatorPageSource: 'mobileUiautomatorPageSource',\n\n webAtoms: 'mobileWebAtoms',\n getContexts: 'mobileGetContexts',\n\n dismissAutofill: 'mobileDismissAutofill',\n\n getNotifications: 'mobileGetNotifications',\n\n listSms: 'mobileListSms',\n\n pushFile: 'mobilePushFile',\n pullFile: 'mobilePullFile',\n pullFolder: 'mobilePullFolder',\n deleteFile: 'mobileDeleteFile',\n\n isAppInstalled: 'mobileIsAppInstalled',\n queryAppState: 'mobileQueryAppState',\n activateApp: 'mobileActivateApp',\n removeApp: 'mobileRemoveApp',\n terminateApp: 'mobileTerminateApp',\n installApp: 'mobileInstallApp',\n clearApp: 'mobileClearApp',\n backgroundApp: 'mobileBackgroundApp',\n getCurrentActivity: 'getCurrentActivity',\n getCurrentPackage: 'getCurrentPackage',\n\n startActivity: 'mobileStartActivity',\n startService: 'mobileStartService',\n stopService: 'mobileStopService',\n broadcast: 'mobileBroadcast',\n\n registerIdlingResources: 'mobileRegisterIdlingResources',\n unregisterIdlingResources: 'mobileUnregisterIdlingResources',\n listIdlingResources: 'mobileListIdlingResources',\n waitForUIThread: 'mobileWaitForUIThread',\n\n lock: 'mobileLock',\n unlock: 'mobileUnlock',\n isLocked: 'isLocked',\n\n refreshGpsCache: 'mobileRefreshGpsCache',\n\n startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',\n isMediaProjectionRecordingRunning: 'mobileIsMediaProjectionRecordingRunning',\n stopMediaProjectionRecording: 'mobileStopMediaProjectionRecording',\n\n getConnectivity: 'mobileGetConnectivity',\n setConnectivity: 'mobileSetConnectivity',\n toggleGps: 'toggleLocationServices',\n isGpsEnables: 'isLocationServicesEnabled',\n\n pressKey: 'mobilePressKey',\n hideKeyboard: 'hideKeyboard',\n isKeyboardShown: 'isKeyboardShown',\n\n getDisplayDensity: 'getDisplayDensity',\n getSystemBars: 'getSystemBars',\n fingerprint: 'mobileFingerprint',\n\n sendSms: 'mobileSendSms',\n gsmCall: 'mobileGsmCall',\n gsmSignal: 'mobileGsmSignal',\n gsmVoice: 'mobileGsmVoice',\n powerAc: 'mobilePowerAC',\n powerCapacity: 'mobilePowerCapacity',\n networkSpeed: 'mobileNetworkSpeed',\n sensorSet: 'sensorSet',\n\n getPerformanceData: 'mobileGetPerformanceData',\n getPerformanceDataTypes: 'getPerformanceDataTypes',\n\n statusBar: 'mobilePerformStatusBarCommand',\n };\n\n if (!_.has(mobileCommandsMapping, mobileCommand)) {\n throw new errors.UnknownCommandError(`Unknown mobile command \"${mobileCommand}\". ` +\n `Only ${_.keys(mobileCommandsMapping)} commands are supported.`);\n }\n return await this[mobileCommandsMapping[mobileCommand]](opts);\n};\n\nexport default extensions;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"execute.js","names":["_lodash","_interopRequireDefault","require","_driver","extensions","executeMobile","mobileCommand","opts","mobileCommandsMapping","shell","execEmuConsoleCommand","performEditorAction","changePermissions","getPermissions","startScreenStreaming","stopScreenStreaming","swipe","scrollToPage","navigateTo","clickAction","deviceInfo","isToastVisible","openDrawer","closeDrawer","setDate","setTime","getDeviceTime","backdoor","flashElement","uiautomator","uiautomatorPageSource","webAtoms","getContexts","dismissAutofill","getNotifications","listSms","pushFile","pullFile","pullFolder","deleteFile","isAppInstalled","queryAppState","activateApp","removeApp","terminateApp","installApp","clearApp","backgroundApp","getCurrentActivity","getCurrentPackage","startActivity","startService","stopService","broadcast","registerIdlingResources","unregisterIdlingResources","listIdlingResources","waitForUIThread","lock","unlock","isLocked","refreshGpsCache","startMediaProjectionRecording","isMediaProjectionRecordingRunning","stopMediaProjectionRecording","getConnectivity","setConnectivity","toggleGps","isGpsEnables","pressKey","hideKeyboard","isKeyboardShown","getDisplayDensity","getSystemBars","fingerprint","sendSms","gsmCall","gsmSignal","gsmVoice","powerAc","powerCapacity","networkSpeed","sensorSet","getPerformanceData","getPerformanceDataTypes","statusBar","screenshots","_","has","errors","UnknownCommandError","keys","_default","exports","default"],"sources":["../../../lib/commands/execute.js"],"sourcesContent":["import _ from 'lodash';\nimport { errors } from 'appium/driver';\n\nconst extensions = {};\n\nextensions.executeMobile = async function executeMobile (mobileCommand, opts = {}) {\n const mobileCommandsMapping = {\n shell: 'mobileShell',\n\n execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',\n\n performEditorAction: 'mobilePerformEditorAction',\n\n changePermissions: 'mobileChangePermissions',\n getPermissions: 'mobileGetPermissions',\n\n startScreenStreaming: 'mobileStartScreenStreaming',\n stopScreenStreaming: 'mobileStopScreenStreaming',\n\n swipe: 'mobileSwipe',\n scrollToPage: 'mobileScrollToPage',\n navigateTo: 'mobileNavigateTo',\n clickAction: 'mobileClickAction',\n\n deviceInfo: 'mobileGetDeviceInfo',\n\n isToastVisible: 'mobileIsToastVisible',\n\n openDrawer: 'mobileOpenDrawer',\n closeDrawer: 'mobileCloseDrawer',\n\n setDate: 'mobileSetDate',\n setTime: 'mobileSetTime',\n\n getDeviceTime: 'mobileGetDeviceTime',\n\n backdoor: 'mobileBackdoor',\n\n flashElement: 'mobileFlashElement',\n\n uiautomator: 'mobileUiautomator',\n uiautomatorPageSource: 'mobileUiautomatorPageSource',\n\n webAtoms: 'mobileWebAtoms',\n getContexts: 'mobileGetContexts',\n\n dismissAutofill: 'mobileDismissAutofill',\n\n getNotifications: 'mobileGetNotifications',\n\n listSms: 'mobileListSms',\n\n pushFile: 'mobilePushFile',\n pullFile: 'mobilePullFile',\n pullFolder: 'mobilePullFolder',\n deleteFile: 'mobileDeleteFile',\n\n isAppInstalled: 'mobileIsAppInstalled',\n queryAppState: 'mobileQueryAppState',\n activateApp: 'mobileActivateApp',\n removeApp: 'mobileRemoveApp',\n terminateApp: 'mobileTerminateApp',\n installApp: 'mobileInstallApp',\n clearApp: 'mobileClearApp',\n backgroundApp: 'mobileBackgroundApp',\n getCurrentActivity: 'getCurrentActivity',\n getCurrentPackage: 'getCurrentPackage',\n\n startActivity: 'mobileStartActivity',\n startService: 'mobileStartService',\n stopService: 'mobileStopService',\n broadcast: 'mobileBroadcast',\n\n registerIdlingResources: 'mobileRegisterIdlingResources',\n unregisterIdlingResources: 'mobileUnregisterIdlingResources',\n listIdlingResources: 'mobileListIdlingResources',\n waitForUIThread: 'mobileWaitForUIThread',\n\n lock: 'mobileLock',\n unlock: 'mobileUnlock',\n isLocked: 'isLocked',\n\n refreshGpsCache: 'mobileRefreshGpsCache',\n\n startMediaProjectionRecording: 'mobileStartMediaProjectionRecording',\n isMediaProjectionRecordingRunning: 'mobileIsMediaProjectionRecordingRunning',\n stopMediaProjectionRecording: 'mobileStopMediaProjectionRecording',\n\n getConnectivity: 'mobileGetConnectivity',\n setConnectivity: 'mobileSetConnectivity',\n toggleGps: 'toggleLocationServices',\n isGpsEnables: 'isLocationServicesEnabled',\n\n pressKey: 'mobilePressKey',\n hideKeyboard: 'hideKeyboard',\n isKeyboardShown: 'isKeyboardShown',\n\n getDisplayDensity: 'getDisplayDensity',\n getSystemBars: 'getSystemBars',\n fingerprint: 'mobileFingerprint',\n\n sendSms: 'mobileSendSms',\n gsmCall: 'mobileGsmCall',\n gsmSignal: 'mobileGsmSignal',\n gsmVoice: 'mobileGsmVoice',\n powerAc: 'mobilePowerAC',\n powerCapacity: 'mobilePowerCapacity',\n networkSpeed: 'mobileNetworkSpeed',\n sensorSet: 'sensorSet',\n\n getPerformanceData: 'mobileGetPerformanceData',\n getPerformanceDataTypes: 'getPerformanceDataTypes',\n\n statusBar: 'mobilePerformStatusBarCommand',\n\n screenshots: 'mobileScreenshots',\n };\n\n if (!_.has(mobileCommandsMapping, mobileCommand)) {\n throw new errors.UnknownCommandError(`Unknown mobile command \"${mobileCommand}\". ` +\n `Only ${_.keys(mobileCommandsMapping)} commands are supported.`);\n }\n return await this[mobileCommandsMapping[mobileCommand]](opts);\n};\n\nexport default extensions;\n"],"mappings":"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"}
|
|
@@ -9,9 +9,10 @@ require("source-map-support/register");
|
|
|
9
9
|
var _execute = _interopRequireDefault(require("./execute"));
|
|
10
10
|
var _general = _interopRequireDefault(require("./general"));
|
|
11
11
|
var _services = _interopRequireDefault(require("./services"));
|
|
12
|
+
var _screenshot = _interopRequireDefault(require("./screenshot"));
|
|
12
13
|
var _idlingResources = _interopRequireDefault(require("./idling-resources"));
|
|
13
14
|
const commands = {};
|
|
14
|
-
Object.assign(commands, _general.default, _execute.default, _services.default, _idlingResources.default);
|
|
15
|
+
Object.assign(commands, _general.default, _execute.default, _services.default, _idlingResources.default, _screenshot.default);
|
|
15
16
|
var _default = commands;
|
|
16
17
|
exports.default = _default;
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhlY3V0ZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2dlbmVyYWwiLCJfc2VydmljZXMiLCJfc2NyZWVuc2hvdCIsIl9pZGxpbmdSZXNvdXJjZXMiLCJjb21tYW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImdlbmVyYWxDbWRzIiwiZXhlY3V0ZUNtZHMiLCJzZXJ2aWNlc0NtZHMiLCJpZGxpbmdSZXNvdXJjZXNDbWRzIiwic2NyZWVuc2hvdENtZHMiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2NvbW1hbmRzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBleGVjdXRlQ21kcyBmcm9tICcuL2V4ZWN1dGUnO1xuaW1wb3J0IGdlbmVyYWxDbWRzIGZyb20gJy4vZ2VuZXJhbCc7XG5pbXBvcnQgc2VydmljZXNDbWRzIGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHNjcmVlbnNob3RDbWRzIGZyb20gJy4vc2NyZWVuc2hvdCc7XG5pbXBvcnQgaWRsaW5nUmVzb3VyY2VzQ21kcyBmcm9tICcuL2lkbGluZy1yZXNvdXJjZXMnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuT2JqZWN0LmFzc2lnbihcbiAgY29tbWFuZHMsXG4gIGdlbmVyYWxDbWRzLFxuICBleGVjdXRlQ21kcyxcbiAgc2VydmljZXNDbWRzLFxuICBpZGxpbmdSZXNvdXJjZXNDbWRzLFxuICBzY3JlZW5zaG90Q21kcyxcbiAgLy8gYWRkIG90aGVyIGNvbW1hbmQgdHlwZXMgaGVyZVxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLE1BQU1LLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDbkJDLE1BQU0sQ0FBQ0MsTUFBTSxDQUNYRixRQUFRLEVBQ1JHLGdCQUFXLEVBQ1hDLGdCQUFXLEVBQ1hDLGlCQUFZLEVBQ1pDLHdCQUFtQixFQUNuQkMsbUJBRUYsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFYVIsUUFBUTtBQUFBUyxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_execute","_interopRequireDefault","require","_general","_services","_idlingResources","commands","Object","assign","generalCmds","executeCmds","servicesCmds","idlingResourcesCmds","_default","exports","default"],"sources":["../../../lib/commands/index.js"],"sourcesContent":["import executeCmds from './execute';\nimport generalCmds from './general';\nimport servicesCmds from './services';\nimport idlingResourcesCmds from './idling-resources';\n\nconst commands = {};\nObject.assign(\n commands,\n generalCmds,\n executeCmds,\n servicesCmds,\n idlingResourcesCmds,\n // add other command types here\n);\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,
|
|
1
|
+
{"version":3,"file":"index.js","names":["_execute","_interopRequireDefault","require","_general","_services","_screenshot","_idlingResources","commands","Object","assign","generalCmds","executeCmds","servicesCmds","idlingResourcesCmds","screenshotCmds","_default","exports","default"],"sources":["../../../lib/commands/index.js"],"sourcesContent":["import executeCmds from './execute';\nimport generalCmds from './general';\nimport servicesCmds from './services';\nimport screenshotCmds from './screenshot';\nimport idlingResourcesCmds from './idling-resources';\n\nconst commands = {};\nObject.assign(\n commands,\n generalCmds,\n executeCmds,\n servicesCmds,\n idlingResourcesCmds,\n screenshotCmds,\n // add other command types here\n);\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,gBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,MAAMK,QAAQ,GAAG,CAAC,CAAC;AACnBC,MAAM,CAACC,MAAM,CACXF,QAAQ,EACRG,gBAAW,EACXC,gBAAW,EACXC,iBAAY,EACZC,wBAAmB,EACnBC,mBAEF,CAAC;AAAC,IAAAC,QAAA,GAEaR,QAAQ;AAAAS,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
require("source-map-support/register");
|
|
9
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
10
|
+
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
11
|
+
const commands = {};
|
|
12
|
+
const DISPLAY_PATTERN = /^Display\s+(\d+)\s+\(.+display\s+(\d+)\).+displayName="([^"]*)/gm;
|
|
13
|
+
commands.mobileScreenshots = async function mobileScreenshots(opts = {}) {
|
|
14
|
+
const displaysInfo = await this.adb.shell(['dumpsys', 'SurfaceFlinger', '--display-id']);
|
|
15
|
+
const infos = {};
|
|
16
|
+
let match;
|
|
17
|
+
while (match = DISPLAY_PATTERN.exec(displaysInfo)) {
|
|
18
|
+
infos[match[1]] = {
|
|
19
|
+
id: match[1],
|
|
20
|
+
isDefault: match[2] === '0',
|
|
21
|
+
name: match[3]
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
if (_lodash.default.isEmpty(infos)) {
|
|
25
|
+
this.log.debug(displaysInfo);
|
|
26
|
+
throw new Error('Cannot determine the information about connected Android displays');
|
|
27
|
+
}
|
|
28
|
+
this.log.info(`Parsed Android display infos: ${JSON.stringify(infos)}`);
|
|
29
|
+
const toB64Screenshot = async dispId => (await this.adb.takeScreenshot(dispId)).toString('base64');
|
|
30
|
+
const {
|
|
31
|
+
displayId
|
|
32
|
+
} = opts;
|
|
33
|
+
const displayIdStr = isNaN(displayId) ? null : `${displayId}`;
|
|
34
|
+
if (displayIdStr) {
|
|
35
|
+
if (!infos[displayIdStr]) {
|
|
36
|
+
throw new Error(`The provided display identifier '${displayId}' is not known. ` + `Only the following displays have been detected: ${JSON.stringify(infos)}`);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
[displayIdStr]: {
|
|
40
|
+
...infos[displayIdStr],
|
|
41
|
+
payload: await toB64Screenshot(displayIdStr)
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const allInfos = _lodash.default.values(infos);
|
|
46
|
+
const screenshots = await _bluebird.default.all(allInfos.map(({
|
|
47
|
+
id
|
|
48
|
+
}) => toB64Screenshot(id)));
|
|
49
|
+
for (const [info, payload] of _lodash.default.zip(allInfos, screenshots)) {
|
|
50
|
+
info.payload = payload;
|
|
51
|
+
}
|
|
52
|
+
return infos;
|
|
53
|
+
};
|
|
54
|
+
var _default = commands;
|
|
55
|
+
exports.default = _default;
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYmx1ZWJpcmQiLCJjb21tYW5kcyIsIkRJU1BMQVlfUEFUVEVSTiIsIm1vYmlsZVNjcmVlbnNob3RzIiwib3B0cyIsImRpc3BsYXlzSW5mbyIsImFkYiIsInNoZWxsIiwiaW5mb3MiLCJtYXRjaCIsImV4ZWMiLCJpZCIsImlzRGVmYXVsdCIsIm5hbWUiLCJfIiwiaXNFbXB0eSIsImxvZyIsImRlYnVnIiwiRXJyb3IiLCJpbmZvIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvQjY0U2NyZWVuc2hvdCIsImRpc3BJZCIsInRha2VTY3JlZW5zaG90IiwidG9TdHJpbmciLCJkaXNwbGF5SWQiLCJkaXNwbGF5SWRTdHIiLCJpc05hTiIsInBheWxvYWQiLCJhbGxJbmZvcyIsInZhbHVlcyIsInNjcmVlbnNob3RzIiwiQiIsImFsbCIsIm1hcCIsInppcCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29tbWFuZHMvc2NyZWVuc2hvdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vLyBEaXNwbGF5IDQ2MTk4MjcyNTk4MzU2NDQ2NzIgKEhXQyBkaXNwbGF5IDApOiBwb3J0PTAgcG5wSWQ9R0dMIGRpc3BsYXlOYW1lPVwiRU1VX2Rpc3BsYXlfMFwiXG5jb25zdCBESVNQTEFZX1BBVFRFUk4gPSAvXkRpc3BsYXlcXHMrKFxcZCspXFxzK1xcKC4rZGlzcGxheVxccysoXFxkKylcXCkuK2Rpc3BsYXlOYW1lPVwiKFteXCJdKikvZ207XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2NyZWVuc2hvdHNJbmZvXG4gKlxuICogQSBkaWN0aW9uYXJ5IHdoZXJlIGVhY2gga2V5IGNvbnRhaW5zIGEgdW5pcXVlIGRpc3BsYXkgaWRlbnRpZmllclxuICogYW5kIHZhbHVlcyBhcmUgZGljdGlvbmFyaWVzIHdpdGggZm9sbG93aW5nIGl0ZW1zOlxuICogLSBpZDogRGlzcGxheSBpZGVudGlmaWVyXG4gKiAtIG5hbWU6IERpc3BsYXkgbmFtZSwgY291bGQgYmUgZW1wdHlcbiAqIC0gaXNEZWZhdWx0OiBXaGV0aGVyIHRoaXMgZGlzcGxheSBpcyB0aGUgZGVmYXVsdCBvbmVcbiAqIC0gcGF5bG9hZDogVGhlIGFjdHVhbCBQTkcgc2NyZWVuc2hvdCBkYXRhIGVuY29kZWQgdG8gYmFzZTY0IHN0cmluZ1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2NyZWVuc2hvdHNPcHRzXG4gKiBAcHJvcGVydHkge251bWJlcnxzdHJpbmc/fSBkaXNwbGF5SWQgQW5kcm9pZCBkaXNwbGF5IGlkZW50aWZpZXIgdG8gdGFrZSBhIHNjcmVlbnNob3QgZm9yLlxuICogSWYgbm90IHByb3ZpZGVkIHRoZW4gc2NyZWVuc2hvdHMgb2YgYWxsIGRpc3BsYXlzIGFyZSBnb2luZyB0byBiZSByZXR1cm5lZC5cbiAqIElmIG5vIG1hdGNoZXMgd2VyZSBmb3VuZCB0aGVuIGFuIGVycm9yIGlzIHRocm93bi5cbiAqL1xuXG4vKipcbiAqIFJldHJpZXZlcyBzY3JlZW5zaG90cyBvZiBlYWNoIGRpc3BsYXkgYXZhaWxhYmxlIHRvIEFuZHJvaWQuXG4gKiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgb25seSBzdXBwb3J0ZWQgc2luY2UgQW5kcm9pZCAxMC5cbiAqXG4gKiBAcGFyYW0ge1NjcmVlbnNob3RzT3B0c30gb3B0c1xuICogQHJldHVybnMge1Byb21pc2U8U2NyZWVuc2hvdHNJbmZvPn1cbiAqL1xuY29tbWFuZHMubW9iaWxlU2NyZWVuc2hvdHMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTY3JlZW5zaG90cyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IGRpc3BsYXlzSW5mbyA9IGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsnZHVtcHN5cycsICdTdXJmYWNlRmxpbmdlcicsICctLWRpc3BsYXktaWQnXSk7XG4gIGNvbnN0IGluZm9zID0ge307XG4gIGxldCBtYXRjaDtcbiAgd2hpbGUgKChtYXRjaCA9IERJU1BMQVlfUEFUVEVSTi5leGVjKGRpc3BsYXlzSW5mbykpKSB7XG4gICAgaW5mb3NbbWF0Y2hbMV1dID0ge1xuICAgICAgaWQ6IG1hdGNoWzFdLFxuICAgICAgaXNEZWZhdWx0OiBtYXRjaFsyXSA9PT0gJzAnLFxuICAgICAgbmFtZTogbWF0Y2hbM10sXG4gICAgfTtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KGluZm9zKSkge1xuICAgIHRoaXMubG9nLmRlYnVnKGRpc3BsYXlzSW5mbyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGV0ZXJtaW5lIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBjb25uZWN0ZWQgQW5kcm9pZCBkaXNwbGF5cycpO1xuICB9XG4gIHRoaXMubG9nLmluZm8oYFBhcnNlZCBBbmRyb2lkIGRpc3BsYXkgaW5mb3M6ICR7SlNPTi5zdHJpbmdpZnkoaW5mb3MpfWApO1xuXG4gIGNvbnN0IHRvQjY0U2NyZWVuc2hvdCA9IGFzeW5jIChkaXNwSWQpID0+IChhd2FpdCB0aGlzLmFkYi50YWtlU2NyZWVuc2hvdChkaXNwSWQpKVxuICAgIC50b1N0cmluZygnYmFzZTY0Jyk7XG5cbiAgY29uc3Qge2Rpc3BsYXlJZH0gPSBvcHRzO1xuICBjb25zdCBkaXNwbGF5SWRTdHIgPSBpc05hTihkaXNwbGF5SWQpID8gbnVsbCA6IGAke2Rpc3BsYXlJZH1gO1xuICBpZiAoZGlzcGxheUlkU3RyKSB7XG4gICAgaWYgKCFpbmZvc1tkaXNwbGF5SWRTdHJdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgcHJvdmlkZWQgZGlzcGxheSBpZGVudGlmaWVyICcke2Rpc3BsYXlJZH0nIGlzIG5vdCBrbm93bi4gYCArXG4gICAgICAgIGBPbmx5IHRoZSBmb2xsb3dpbmcgZGlzcGxheXMgaGF2ZSBiZWVuIGRldGVjdGVkOiAke0pTT04uc3RyaW5naWZ5KGluZm9zKX1gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgW2Rpc3BsYXlJZFN0cl06IHtcbiAgICAgICAgLi4uaW5mb3NbZGlzcGxheUlkU3RyXSxcbiAgICAgICAgcGF5bG9hZDogYXdhaXQgdG9CNjRTY3JlZW5zaG90KGRpc3BsYXlJZFN0ciksXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGFsbEluZm9zID0gXy52YWx1ZXMoaW5mb3MpO1xuICBjb25zdCBzY3JlZW5zaG90cyA9IGF3YWl0IEIuYWxsKGFsbEluZm9zLm1hcCgoe2lkfSkgPT4gdG9CNjRTY3JlZW5zaG90KGlkKSkpO1xuICBmb3IgKGNvbnN0IFtpbmZvLCBwYXlsb2FkXSBvZiBfLnppcChhbGxJbmZvcywgc2NyZWVuc2hvdHMpKSB7XG4gICAgaW5mby5wYXlsb2FkID0gcGF5bG9hZDtcbiAgfVxuICByZXR1cm4gaW5mb3M7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNRSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBR25CLE1BQU1DLGVBQWUsR0FBRyxrRUFBa0U7QUEyQjFGRCxRQUFRLENBQUNFLGlCQUFpQixHQUFHLGVBQWVBLGlCQUFpQkEsQ0FBRUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFO0VBQ3hFLE1BQU1DLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7RUFDeEYsTUFBTUMsS0FBSyxHQUFHLENBQUMsQ0FBQztFQUNoQixJQUFJQyxLQUFLO0VBQ1QsT0FBUUEsS0FBSyxHQUFHUCxlQUFlLENBQUNRLElBQUksQ0FBQ0wsWUFBWSxDQUFDLEVBQUc7SUFDbkRHLEtBQUssQ0FBQ0MsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7TUFDaEJFLEVBQUUsRUFBRUYsS0FBSyxDQUFDLENBQUMsQ0FBQztNQUNaRyxTQUFTLEVBQUVILEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHO01BQzNCSSxJQUFJLEVBQUVKLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztFQUNIO0VBQ0EsSUFBSUssZUFBQyxDQUFDQyxPQUFPLENBQUNQLEtBQUssQ0FBQyxFQUFFO0lBQ3BCLElBQUksQ0FBQ1EsR0FBRyxDQUFDQyxLQUFLLENBQUNaLFlBQVksQ0FBQztJQUM1QixNQUFNLElBQUlhLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQztFQUN0RjtFQUNBLElBQUksQ0FBQ0YsR0FBRyxDQUFDRyxJQUFJLENBQUUsaUNBQWdDQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ2IsS0FBSyxDQUFFLEVBQUMsQ0FBQztFQUV2RSxNQUFNYyxlQUFlLEdBQUcsTUFBT0MsTUFBTSxJQUFLLENBQUMsTUFBTSxJQUFJLENBQUNqQixHQUFHLENBQUNrQixjQUFjLENBQUNELE1BQU0sQ0FBQyxFQUM3RUUsUUFBUSxDQUFDLFFBQVEsQ0FBQztFQUVyQixNQUFNO0lBQUNDO0VBQVMsQ0FBQyxHQUFHdEIsSUFBSTtFQUN4QixNQUFNdUIsWUFBWSxHQUFHQyxLQUFLLENBQUNGLFNBQVMsQ0FBQyxHQUFHLElBQUksR0FBSSxHQUFFQSxTQUFVLEVBQUM7RUFDN0QsSUFBSUMsWUFBWSxFQUFFO0lBQ2hCLElBQUksQ0FBQ25CLEtBQUssQ0FBQ21CLFlBQVksQ0FBQyxFQUFFO01BQ3hCLE1BQU0sSUFBSVQsS0FBSyxDQUNaLG9DQUFtQ1EsU0FBVSxrQkFBaUIsR0FDOUQsbURBQWtETixJQUFJLENBQUNDLFNBQVMsQ0FBQ2IsS0FBSyxDQUFFLEVBQzNFLENBQUM7SUFDSDtJQUNBLE9BQU87TUFDTCxDQUFDbUIsWUFBWSxHQUFHO1FBQ2QsR0FBR25CLEtBQUssQ0FBQ21CLFlBQVksQ0FBQztRQUN0QkUsT0FBTyxFQUFFLE1BQU1QLGVBQWUsQ0FBQ0ssWUFBWTtNQUM3QztJQUNGLENBQUM7RUFDSDtFQUVBLE1BQU1HLFFBQVEsR0FBR2hCLGVBQUMsQ0FBQ2lCLE1BQU0sQ0FBQ3ZCLEtBQUssQ0FBQztFQUNoQyxNQUFNd0IsV0FBVyxHQUFHLE1BQU1DLGlCQUFDLENBQUNDLEdBQUcsQ0FBQ0osUUFBUSxDQUFDSyxHQUFHLENBQUMsQ0FBQztJQUFDeEI7RUFBRSxDQUFDLEtBQUtXLGVBQWUsQ0FBQ1gsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUM1RSxLQUFLLE1BQU0sQ0FBQ1EsSUFBSSxFQUFFVSxPQUFPLENBQUMsSUFBSWYsZUFBQyxDQUFDc0IsR0FBRyxDQUFDTixRQUFRLEVBQUVFLFdBQVcsQ0FBQyxFQUFFO0lBQzFEYixJQUFJLENBQUNVLE9BQU8sR0FBR0EsT0FBTztFQUN4QjtFQUNBLE9BQU9yQixLQUFLO0FBQ2QsQ0FBQztBQUFDLElBQUE2QixRQUFBLEdBRWFwQyxRQUFRO0FBQUFxQyxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.js","names":["_lodash","_interopRequireDefault","require","_bluebird","commands","DISPLAY_PATTERN","mobileScreenshots","opts","displaysInfo","adb","shell","infos","match","exec","id","isDefault","name","_","isEmpty","log","debug","Error","info","JSON","stringify","toB64Screenshot","dispId","takeScreenshot","toString","displayId","displayIdStr","isNaN","payload","allInfos","values","screenshots","B","all","map","zip","_default","exports","default"],"sources":["../../../lib/commands/screenshot.js"],"sourcesContent":["import _ from 'lodash';\nimport B from 'bluebird';\n\nconst commands = {};\n\n// Display 4619827259835644672 (HWC display 0): port=0 pnpId=GGL displayName=\"EMU_display_0\"\nconst DISPLAY_PATTERN = /^Display\\s+(\\d+)\\s+\\(.+display\\s+(\\d+)\\).+displayName=\"([^\"]*)/gm;\n\n/**\n * @typedef {Object} ScreenshotsInfo\n *\n * A dictionary where each key contains a unique display identifier\n * and values are dictionaries with following items:\n * - id: Display identifier\n * - name: Display name, could be empty\n * - isDefault: Whether this display is the default one\n * - payload: The actual PNG screenshot data encoded to base64 string\n */\n\n/**\n * @typedef {Object} ScreenshotsOpts\n * @property {number|string?} displayId Android display identifier to take a screenshot for.\n * If not provided then screenshots of all displays are going to be returned.\n * If no matches were found then an error is thrown.\n */\n\n/**\n * Retrieves screenshots of each display available to Android.\n * This functionality is only supported since Android 10.\n *\n * @param {ScreenshotsOpts} opts\n * @returns {Promise<ScreenshotsInfo>}\n */\ncommands.mobileScreenshots = async function mobileScreenshots (opts = {}) {\n const displaysInfo = await this.adb.shell(['dumpsys', 'SurfaceFlinger', '--display-id']);\n const infos = {};\n let match;\n while ((match = DISPLAY_PATTERN.exec(displaysInfo))) {\n infos[match[1]] = {\n id: match[1],\n isDefault: match[2] === '0',\n name: match[3],\n };\n }\n if (_.isEmpty(infos)) {\n this.log.debug(displaysInfo);\n throw new Error('Cannot determine the information about connected Android displays');\n }\n this.log.info(`Parsed Android display infos: ${JSON.stringify(infos)}`);\n\n const toB64Screenshot = async (dispId) => (await this.adb.takeScreenshot(dispId))\n .toString('base64');\n\n const {displayId} = opts;\n const displayIdStr = isNaN(displayId) ? null : `${displayId}`;\n if (displayIdStr) {\n if (!infos[displayIdStr]) {\n throw new Error(\n `The provided display identifier '${displayId}' is not known. ` +\n `Only the following displays have been detected: ${JSON.stringify(infos)}`\n );\n }\n return {\n [displayIdStr]: {\n ...infos[displayIdStr],\n payload: await toB64Screenshot(displayIdStr),\n }\n };\n }\n\n const allInfos = _.values(infos);\n const screenshots = await B.all(allInfos.map(({id}) => toB64Screenshot(id)));\n for (const [info, payload] of _.zip(allInfos, screenshots)) {\n info.payload = payload;\n }\n return infos;\n};\n\nexport default commands;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,MAAME,QAAQ,GAAG,CAAC,CAAC;AAGnB,MAAMC,eAAe,GAAG,kEAAkE;AA2B1FD,QAAQ,CAACE,iBAAiB,GAAG,eAAeA,iBAAiBA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAE;EACxE,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACC,GAAG,CAACC,KAAK,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;EACxF,MAAMC,KAAK,GAAG,CAAC,CAAC;EAChB,IAAIC,KAAK;EACT,OAAQA,KAAK,GAAGP,eAAe,CAACQ,IAAI,CAACL,YAAY,CAAC,EAAG;IACnDG,KAAK,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;MAChBE,EAAE,EAAEF,KAAK,CAAC,CAAC,CAAC;MACZG,SAAS,EAAEH,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;MAC3BI,IAAI,EAAEJ,KAAK,CAAC,CAAC;IACf,CAAC;EACH;EACA,IAAIK,eAAC,CAACC,OAAO,CAACP,KAAK,CAAC,EAAE;IACpB,IAAI,CAACQ,GAAG,CAACC,KAAK,CAACZ,YAAY,CAAC;IAC5B,MAAM,IAAIa,KAAK,CAAC,mEAAmE,CAAC;EACtF;EACA,IAAI,CAACF,GAAG,CAACG,IAAI,CAAE,iCAAgCC,IAAI,CAACC,SAAS,CAACb,KAAK,CAAE,EAAC,CAAC;EAEvE,MAAMc,eAAe,GAAG,MAAOC,MAAM,IAAK,CAAC,MAAM,IAAI,CAACjB,GAAG,CAACkB,cAAc,CAACD,MAAM,CAAC,EAC7EE,QAAQ,CAAC,QAAQ,CAAC;EAErB,MAAM;IAACC;EAAS,CAAC,GAAGtB,IAAI;EACxB,MAAMuB,YAAY,GAAGC,KAAK,CAACF,SAAS,CAAC,GAAG,IAAI,GAAI,GAAEA,SAAU,EAAC;EAC7D,IAAIC,YAAY,EAAE;IAChB,IAAI,CAACnB,KAAK,CAACmB,YAAY,CAAC,EAAE;MACxB,MAAM,IAAIT,KAAK,CACZ,oCAAmCQ,SAAU,kBAAiB,GAC9D,mDAAkDN,IAAI,CAACC,SAAS,CAACb,KAAK,CAAE,EAC3E,CAAC;IACH;IACA,OAAO;MACL,CAACmB,YAAY,GAAG;QACd,GAAGnB,KAAK,CAACmB,YAAY,CAAC;QACtBE,OAAO,EAAE,MAAMP,eAAe,CAACK,YAAY;MAC7C;IACF,CAAC;EACH;EAEA,MAAMG,QAAQ,GAAGhB,eAAC,CAACiB,MAAM,CAACvB,KAAK,CAAC;EAChC,MAAMwB,WAAW,GAAG,MAAMC,iBAAC,CAACC,GAAG,CAACJ,QAAQ,CAACK,GAAG,CAAC,CAAC;IAACxB;EAAE,CAAC,KAAKW,eAAe,CAACX,EAAE,CAAC,CAAC,CAAC;EAC5E,KAAK,MAAM,CAACQ,IAAI,EAAEU,OAAO,CAAC,IAAIf,eAAC,CAACsB,GAAG,CAACN,QAAQ,EAAEE,WAAW,CAAC,EAAE;IAC1Db,IAAI,CAACU,OAAO,GAAGA,OAAO;EACxB;EACA,OAAOrB,KAAK;AACd,CAAC;AAAC,IAAA6B,QAAA,GAEapC,QAAQ;AAAAqC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
Binary file
|
package/lib/commands/execute.js
CHANGED
|
@@ -112,6 +112,8 @@ extensions.executeMobile = async function executeMobile (mobileCommand, opts = {
|
|
|
112
112
|
getPerformanceDataTypes: 'getPerformanceDataTypes',
|
|
113
113
|
|
|
114
114
|
statusBar: 'mobilePerformStatusBarCommand',
|
|
115
|
+
|
|
116
|
+
screenshots: 'mobileScreenshots',
|
|
115
117
|
};
|
|
116
118
|
|
|
117
119
|
if (!_.has(mobileCommandsMapping, mobileCommand)) {
|
package/lib/commands/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import executeCmds from './execute';
|
|
2
2
|
import generalCmds from './general';
|
|
3
3
|
import servicesCmds from './services';
|
|
4
|
+
import screenshotCmds from './screenshot';
|
|
4
5
|
import idlingResourcesCmds from './idling-resources';
|
|
5
6
|
|
|
6
7
|
const commands = {};
|
|
@@ -10,6 +11,7 @@ Object.assign(
|
|
|
10
11
|
executeCmds,
|
|
11
12
|
servicesCmds,
|
|
12
13
|
idlingResourcesCmds,
|
|
14
|
+
screenshotCmds,
|
|
13
15
|
// add other command types here
|
|
14
16
|
);
|
|
15
17
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import B from 'bluebird';
|
|
3
|
+
|
|
4
|
+
const commands = {};
|
|
5
|
+
|
|
6
|
+
// Display 4619827259835644672 (HWC display 0): port=0 pnpId=GGL displayName="EMU_display_0"
|
|
7
|
+
const DISPLAY_PATTERN = /^Display\s+(\d+)\s+\(.+display\s+(\d+)\).+displayName="([^"]*)/gm;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @typedef {Object} ScreenshotsInfo
|
|
11
|
+
*
|
|
12
|
+
* A dictionary where each key contains a unique display identifier
|
|
13
|
+
* and values are dictionaries with following items:
|
|
14
|
+
* - id: Display identifier
|
|
15
|
+
* - name: Display name, could be empty
|
|
16
|
+
* - isDefault: Whether this display is the default one
|
|
17
|
+
* - payload: The actual PNG screenshot data encoded to base64 string
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @typedef {Object} ScreenshotsOpts
|
|
22
|
+
* @property {number|string?} displayId Android display identifier to take a screenshot for.
|
|
23
|
+
* If not provided then screenshots of all displays are going to be returned.
|
|
24
|
+
* If no matches were found then an error is thrown.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Retrieves screenshots of each display available to Android.
|
|
29
|
+
* This functionality is only supported since Android 10.
|
|
30
|
+
*
|
|
31
|
+
* @param {ScreenshotsOpts} opts
|
|
32
|
+
* @returns {Promise<ScreenshotsInfo>}
|
|
33
|
+
*/
|
|
34
|
+
commands.mobileScreenshots = async function mobileScreenshots (opts = {}) {
|
|
35
|
+
const displaysInfo = await this.adb.shell(['dumpsys', 'SurfaceFlinger', '--display-id']);
|
|
36
|
+
const infos = {};
|
|
37
|
+
let match;
|
|
38
|
+
while ((match = DISPLAY_PATTERN.exec(displaysInfo))) {
|
|
39
|
+
infos[match[1]] = {
|
|
40
|
+
id: match[1],
|
|
41
|
+
isDefault: match[2] === '0',
|
|
42
|
+
name: match[3],
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (_.isEmpty(infos)) {
|
|
46
|
+
this.log.debug(displaysInfo);
|
|
47
|
+
throw new Error('Cannot determine the information about connected Android displays');
|
|
48
|
+
}
|
|
49
|
+
this.log.info(`Parsed Android display infos: ${JSON.stringify(infos)}`);
|
|
50
|
+
|
|
51
|
+
const toB64Screenshot = async (dispId) => (await this.adb.takeScreenshot(dispId))
|
|
52
|
+
.toString('base64');
|
|
53
|
+
|
|
54
|
+
const {displayId} = opts;
|
|
55
|
+
const displayIdStr = isNaN(displayId) ? null : `${displayId}`;
|
|
56
|
+
if (displayIdStr) {
|
|
57
|
+
if (!infos[displayIdStr]) {
|
|
58
|
+
throw new Error(
|
|
59
|
+
`The provided display identifier '${displayId}' is not known. ` +
|
|
60
|
+
`Only the following displays have been detected: ${JSON.stringify(infos)}`
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
[displayIdStr]: {
|
|
65
|
+
...infos[displayIdStr],
|
|
66
|
+
payload: await toB64Screenshot(displayIdStr),
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const allInfos = _.values(infos);
|
|
72
|
+
const screenshots = await B.all(allInfos.map(({id}) => toB64Screenshot(id)));
|
|
73
|
+
for (const [info, payload] of _.zip(allInfos, screenshots)) {
|
|
74
|
+
info.payload = payload;
|
|
75
|
+
}
|
|
76
|
+
return infos;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export default commands;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-espresso-driver",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.24.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-espresso-driver",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.24.0",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@babel/runtime": "^7.4.3",
|
|
13
|
-
"appium-adb": "^9.
|
|
13
|
+
"appium-adb": "^9.13.2",
|
|
14
14
|
"appium-android-driver": "^5.14.0",
|
|
15
15
|
"asyncbox": "^2.3.1",
|
|
16
16
|
"bluebird": "^3.5.0",
|
|
@@ -2477,7 +2477,7 @@
|
|
|
2477
2477
|
}
|
|
2478
2478
|
},
|
|
2479
2479
|
"node_modules/io.appium.settings": {
|
|
2480
|
-
"version": "5.0.
|
|
2480
|
+
"version": "5.0.5",
|
|
2481
2481
|
"license": "Apache-2.0",
|
|
2482
2482
|
"engines": {
|
|
2483
2483
|
"node": ">=14",
|
|
@@ -3898,7 +3898,7 @@
|
|
|
3898
3898
|
}
|
|
3899
3899
|
},
|
|
3900
3900
|
"node_modules/shiki": {
|
|
3901
|
-
"version": "0.14.
|
|
3901
|
+
"version": "0.14.3",
|
|
3902
3902
|
"extraneous": true,
|
|
3903
3903
|
"license": "MIT",
|
|
3904
3904
|
"dependencies": {
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"automated testing",
|
|
8
8
|
"android"
|
|
9
9
|
],
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.24.0",
|
|
11
11
|
"author": "Appium Contributors",
|
|
12
12
|
"license": "Apache-2.0",
|
|
13
13
|
"repository": {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
],
|
|
68
68
|
"dependencies": {
|
|
69
69
|
"@babel/runtime": "^7.4.3",
|
|
70
|
-
"appium-adb": "^9.
|
|
70
|
+
"appium-adb": "^9.13.2",
|
|
71
71
|
"appium-android-driver": "^5.14.0",
|
|
72
72
|
"asyncbox": "^2.3.1",
|
|
73
73
|
"bluebird": "^3.5.0",
|