appium-cdp-driver 1.0.6 → 1.0.8
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/build/scripts/brave.js +22 -4
- package/build/scripts/browserReady.js +302 -0
- package/build/scripts/duckduckgo.js +25 -3
- package/build/scripts/edge.js +31 -4
- package/build/scripts/opera.js +47 -11
- package/build/scripts/samsung.js +67 -12
- package/build/src/adb.js +63 -62
- package/build/src/driver.js +29 -5
- package/package.json +2 -1
- package/src/adb.js +62 -64
- package/src/driver.js +30 -5
package/build/scripts/opera.js
CHANGED
|
@@ -15,8 +15,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
const appium_uiautomator2_driver_1 = require("appium-uiautomator2-driver");
|
|
17
17
|
const appium_adb_1 = require("appium-adb");
|
|
18
|
+
const adb_js_1 = require("../src/adb.js");
|
|
18
19
|
const logger_js_1 = __importDefault(require("../src/logger.js"));
|
|
19
20
|
const asyncbox_1 = require("asyncbox");
|
|
21
|
+
const browserReady_js_1 = require("./browserReady.js");
|
|
20
22
|
const START_APP_WAIT_DURATION = 60000;
|
|
21
23
|
const opera = {
|
|
22
24
|
pkg: 'com.opera.browser',
|
|
@@ -28,13 +30,15 @@ const common = {
|
|
|
28
30
|
};
|
|
29
31
|
function skipWelcomeOpera() {
|
|
30
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const
|
|
33
|
+
const adbPort = (0, adb_js_1.resolveAdbPort)();
|
|
34
|
+
const adb = yield appium_adb_1.ADB.createADB({ adbPort });
|
|
32
35
|
yield adb.adbExec(['shell', 'pm', 'clear', 'com.opera.browser']);
|
|
33
36
|
//await adb.startApp(Object.assign({}, opera, common));
|
|
34
37
|
const driver = new appium_uiautomator2_driver_1.AndroidUiautomator2Driver();
|
|
35
38
|
const caps = {
|
|
36
39
|
platformName: "Android",
|
|
37
40
|
"appium:automationName": "UiAutomator2",
|
|
41
|
+
"appium:adbPort": adbPort,
|
|
38
42
|
"appium:deviceName": "Android Device",
|
|
39
43
|
"appium:appPackage": "com.opera.browser",
|
|
40
44
|
"appium:appActivity": "com.opera.android.BrowserActivity",
|
|
@@ -70,15 +74,24 @@ function skipWelcomeOpera() {
|
|
|
70
74
|
throw new Error(`Failed to find element (${strategy}: ${selector}) within ${timeout}ms timeout: ${error.message}`);
|
|
71
75
|
}
|
|
72
76
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
// an Android system dialog (e.g. "System UI isn't responding") can cover the
|
|
78
|
+
// welcome screen, so this button is not guaranteed; readiness recovers
|
|
79
|
+
let nextButton = null;
|
|
80
|
+
try {
|
|
81
|
+
nextButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/continue_button');
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
logger_js_1.default.info(`continue_button not present: ${error.message}`);
|
|
85
|
+
}
|
|
86
|
+
if (nextButton) {
|
|
87
|
+
yield (0, browserReady_js_1.clickSafely)(driver, nextButton);
|
|
88
|
+
}
|
|
76
89
|
const skipButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/skip_button');
|
|
77
90
|
const MAX_RETRIES = 3;
|
|
78
91
|
let attempt = 0;
|
|
79
92
|
let found = false;
|
|
80
93
|
while (attempt < MAX_RETRIES && !found) {
|
|
81
|
-
yield
|
|
94
|
+
yield (0, browserReady_js_1.clickSafely)(driver, skipButton);
|
|
82
95
|
try {
|
|
83
96
|
yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Enable notifications"]');
|
|
84
97
|
found = true;
|
|
@@ -92,7 +105,7 @@ function skipWelcomeOpera() {
|
|
|
92
105
|
attempt = 0;
|
|
93
106
|
found = false;
|
|
94
107
|
while (attempt < MAX_RETRIES && !found) {
|
|
95
|
-
yield
|
|
108
|
+
yield (0, browserReady_js_1.clickSafely)(driver, skipAgainButton);
|
|
96
109
|
try {
|
|
97
110
|
yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Allow"]');
|
|
98
111
|
found = true;
|
|
@@ -102,14 +115,23 @@ function skipWelcomeOpera() {
|
|
|
102
115
|
attempt++;
|
|
103
116
|
}
|
|
104
117
|
}
|
|
105
|
-
|
|
106
|
-
|
|
118
|
+
// the notification permission dialog is conditional
|
|
119
|
+
let allowButton = null;
|
|
120
|
+
try {
|
|
121
|
+
allowButton = yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Allow"]', 10000);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
logger_js_1.default.info('Allow dialog not shown, skipping');
|
|
125
|
+
}
|
|
126
|
+
if (allowButton) {
|
|
127
|
+
yield (0, browserReady_js_1.clickSafely)(driver, allowButton);
|
|
128
|
+
}
|
|
107
129
|
attempt = 0;
|
|
108
130
|
found = false;
|
|
109
131
|
while (attempt < MAX_RETRIES && !found) {
|
|
110
132
|
try {
|
|
111
133
|
const doneButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/positive_button', 8000);
|
|
112
|
-
yield
|
|
134
|
+
yield (0, browserReady_js_1.clickSafely)(driver, doneButton);
|
|
113
135
|
found = true;
|
|
114
136
|
}
|
|
115
137
|
catch (error) {
|
|
@@ -122,8 +144,22 @@ function skipWelcomeOpera() {
|
|
|
122
144
|
}
|
|
123
145
|
}
|
|
124
146
|
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
logger_js_1.default.info(`walkthrough did not complete (${error.message}) — checking readiness anyway`);
|
|
149
|
+
}
|
|
125
150
|
finally {
|
|
126
|
-
yield
|
|
151
|
+
yield (0, browserReady_js_1.finishSession)(driver, {
|
|
152
|
+
adb,
|
|
153
|
+
pkg: opera.pkg,
|
|
154
|
+
component: `${opera.pkg}/${opera.activity}`,
|
|
155
|
+
socket: 'com.opera.browser.devtools',
|
|
156
|
+
selectors: [
|
|
157
|
+
'//android.widget.Button[@text="Accept and continue"]',
|
|
158
|
+
'//*[@resource-id="com.opera.browser:id/continue_button"]',
|
|
159
|
+
'//*[@resource-id="com.opera.browser:id/skip_button"]',
|
|
160
|
+
'//*[@resource-id="com.opera.browser:id/positive_button"]',
|
|
161
|
+
],
|
|
162
|
+
});
|
|
127
163
|
}
|
|
128
164
|
});
|
|
129
165
|
}
|
|
@@ -131,4 +167,4 @@ function skipWelcomeOpera() {
|
|
|
131
167
|
yield skipWelcomeOpera();
|
|
132
168
|
process.exit(0);
|
|
133
169
|
}))();
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL29wZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsMENBQStDO0FBQy9DLGlFQUFtQztBQUNuQyx1Q0FBNEM7QUFDNUMsdURBQStEO0FBRS9ELE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0FBRXRDLE1BQU0sS0FBSyxHQUFHO0lBQ1osR0FBRyxFQUFFLG1CQUFtQjtJQUN4QixRQUFRLEVBQUUsbUNBQW1DO0NBQzlDLENBQUM7QUFFRixNQUFNLE1BQU0sR0FBRztJQUNiLFlBQVksRUFBRSx1QkFBdUI7SUFDckMsdUJBQXVCLEVBQUUsa0JBQWtCO0NBQzVDLENBQUM7QUFFRixTQUFlLGdCQUFnQjs7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBQSx1QkFBYyxHQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0MsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLHVEQUF1RDtRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLHNEQUF5QixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUc7WUFDWCxZQUFZLEVBQUUsU0FBUztZQUN2Qix1QkFBdUIsRUFBRSxjQUFjO1lBQ3ZDLGdCQUFnQixFQUFFLE9BQU87WUFDekIsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxtQ0FBbUM7U0FDMUQsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdB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
|
package/build/scripts/samsung.js
CHANGED
|
@@ -15,8 +15,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
const appium_uiautomator2_driver_1 = require("appium-uiautomator2-driver");
|
|
17
17
|
const appium_adb_1 = require("appium-adb");
|
|
18
|
+
const adb_js_1 = require("../src/adb.js");
|
|
18
19
|
const logger_js_1 = __importDefault(require("../src/logger.js"));
|
|
19
20
|
const asyncbox_1 = require("asyncbox");
|
|
21
|
+
const browserReady_js_1 = require("./browserReady.js");
|
|
20
22
|
const START_APP_WAIT_DURATION = 60000;
|
|
21
23
|
const samsung = {
|
|
22
24
|
pkg: 'com.sec.android.app.sbrowser',
|
|
@@ -28,12 +30,14 @@ const common = {
|
|
|
28
30
|
};
|
|
29
31
|
function skipWelcomeSamsung() {
|
|
30
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const
|
|
33
|
+
const adbPort = (0, adb_js_1.resolveAdbPort)();
|
|
34
|
+
const adb = yield appium_adb_1.ADB.createADB({ adbPort });
|
|
32
35
|
yield adb.adbExec(['shell', 'pm', 'clear', samsung.pkg]);
|
|
33
36
|
const driver = new appium_uiautomator2_driver_1.AndroidUiautomator2Driver();
|
|
34
37
|
const caps = {
|
|
35
38
|
platformName: "Android",
|
|
36
39
|
"appium:automationName": "UiAutomator2",
|
|
40
|
+
"appium:adbPort": adbPort,
|
|
37
41
|
"appium:deviceName": "Android Device",
|
|
38
42
|
"appium:appPackage": samsung.pkg,
|
|
39
43
|
"appium:appActivity": samsung.activity,
|
|
@@ -68,25 +72,76 @@ function skipWelcomeSamsung() {
|
|
|
68
72
|
throw new Error(`Failed to find element (${strategy}: ${selector}) within ${timeout}ms timeout: ${error.message}`);
|
|
69
73
|
}
|
|
70
74
|
});
|
|
75
|
+
// The agree button is not the same on every build: newer intros label it
|
|
76
|
+
// "Continue" and do not expose help_intro_legal_agree_button. Try the id
|
|
77
|
+
// first, then the label.
|
|
78
|
+
//
|
|
79
|
+
// Note the intro also carries a "Close app" button beside it, and a
|
|
80
|
+
// SystemUI ANR dialog ("Close app" / "Wait") can sit on top of the whole
|
|
81
|
+
// screen. Only ever match the affordances below by exact text — clicking
|
|
82
|
+
// "Close app" would kill the browser we are setting up.
|
|
83
|
+
const INTRO_SELECTORS = [
|
|
84
|
+
['id', 'com.sec.android.app.sbrowser:id/help_intro_legal_agree_button'],
|
|
85
|
+
['xpath', '//android.widget.Button[@text="Continue"]'],
|
|
86
|
+
['xpath', '//android.widget.Button[@text="Agree"]'],
|
|
87
|
+
];
|
|
71
88
|
const MAX_RETRIES = 2;
|
|
72
89
|
let attempt = 0;
|
|
73
90
|
while (attempt < MAX_RETRIES) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
let clicked = false;
|
|
92
|
+
for (const [strategy, selector] of INTRO_SELECTORS) {
|
|
93
|
+
try {
|
|
94
|
+
const buttonToClick = yield findElementWithWaitForCondition(strategy, selector, 4000);
|
|
95
|
+
yield driver.click(buttonToClick.ELEMENT);
|
|
96
|
+
logger_js_1.default.info(`intro dismissed via ${strategy}: ${selector}`);
|
|
97
|
+
clicked = true;
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
// try the next shape
|
|
102
|
+
}
|
|
81
103
|
}
|
|
82
|
-
|
|
83
|
-
attempt
|
|
104
|
+
if (!clicked) {
|
|
105
|
+
logger_js_1.default.info('intro button not found on this attempt');
|
|
84
106
|
}
|
|
107
|
+
attempt++;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Samsung shows a privacy-notice alert on SBrowserMainActivity, after the
|
|
111
|
+
// intro rather than as part of it, so the branch above never sees it. It does
|
|
112
|
+
// not block the devtools socket — the page loads underneath — so the
|
|
113
|
+
// readiness pass has nothing to react to and the dialog would sit over the
|
|
114
|
+
// page for the whole session, swallowing taps meant for the content.
|
|
115
|
+
for (const selector of [
|
|
116
|
+
'//android.widget.Button[@resource-id="android:id/button1" and @text="Continue"]',
|
|
117
|
+
'//android.widget.Button[@text="Continue"]',
|
|
118
|
+
]) {
|
|
119
|
+
try {
|
|
120
|
+
const dialogButton = yield driver.findElement('xpath', selector);
|
|
121
|
+
yield driver.click(dialogButton.ELEMENT);
|
|
122
|
+
logger_js_1.default.info(`dismissed post-intro dialog via ${selector}`);
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
// not shown on this launch
|
|
85
127
|
}
|
|
86
128
|
}
|
|
87
129
|
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
logger_js_1.default.info(`walkthrough did not complete (${error.message}) — checking readiness anyway`);
|
|
132
|
+
}
|
|
88
133
|
finally {
|
|
89
|
-
yield
|
|
134
|
+
yield (0, browserReady_js_1.finishSession)(driver, {
|
|
135
|
+
adb,
|
|
136
|
+
pkg: samsung.pkg,
|
|
137
|
+
component: `${samsung.pkg}/${samsung.activity}`,
|
|
138
|
+
socket: 'Terrace_devtools_remote',
|
|
139
|
+
selectors: [
|
|
140
|
+
'//*[@resource-id="com.sec.android.app.sbrowser:id/help_intro_legal_agree_button"]',
|
|
141
|
+
'//android.widget.Button[@text="Agree"]',
|
|
142
|
+
'//android.widget.Button[@text="I agree"]',
|
|
143
|
+
],
|
|
144
|
+
});
|
|
90
145
|
}
|
|
91
146
|
});
|
|
92
147
|
}
|
|
@@ -94,4 +149,4 @@ function skipWelcomeSamsung() {
|
|
|
94
149
|
yield skipWelcomeSamsung();
|
|
95
150
|
process.exit(0);
|
|
96
151
|
}))();
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Ftc3VuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NjcmlwdHMvc2Ftc3VuZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSwyRUFBdUU7QUFDdkUsMkNBQWlDO0FBQ2pDLDBDQUErQztBQUMvQyxpRUFBbUM7QUFDbkMsdUNBQTRDO0FBQzVDLHVEQUFrRDtBQUVsRCxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLE9BQU8sR0FBRztJQUNkLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkMsUUFBUSxFQUFFLG1EQUFtRDtDQUM5RCxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLHVCQUF1QixFQUFFLGtCQUFrQjtDQUM1QyxDQUFDO0FBRUYsU0FBZSxrQkFBa0I7O1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUEsdUJBQWMsR0FBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksc0RBQXlCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsZ0JBQWdCLEVBQUUsT0FBTztZQUN6QixtQkFBbUIsRUFBRSxnQkFBZ0I7WUFDckMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDdkMsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJ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
|
package/build/src/adb.js
CHANGED
|
@@ -12,9 +12,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.resolveAdbPort = resolveAdbPort;
|
|
15
16
|
exports.getAdb = getAdb;
|
|
16
17
|
exports.requireSdkRoot = requireSdkRoot;
|
|
17
18
|
exports.adbExec = adbExec;
|
|
19
|
+
exports.openStartUrl = openStartUrl;
|
|
18
20
|
exports.startApplication = startApplication;
|
|
19
21
|
const appium_adb_1 = require("appium-adb");
|
|
20
22
|
const support_1 = require("@appium/support");
|
|
@@ -31,16 +33,29 @@ const DEVTOOLS_SOCKET_MAP = {
|
|
|
31
33
|
edge: 'chrome_devtools_remote',
|
|
32
34
|
terrance: 'com.sec.android.app.sbrowser_devtools_remote',
|
|
33
35
|
};
|
|
34
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the adb server port: explicit value wins, then CDP_ADB_PORT (used by
|
|
38
|
+
* the skip-welcome scripts, which run as separate processes and receive no
|
|
39
|
+
* capabilities), then adb's default.
|
|
40
|
+
*/
|
|
41
|
+
function resolveAdbPort(adbPort) {
|
|
42
|
+
const candidate = adbPort !== null && adbPort !== void 0 ? adbPort : process.env.CDP_ADB_PORT;
|
|
43
|
+
const port = parseInt(candidate, 10);
|
|
44
|
+
return Number.isInteger(port) && port > 0 ? port : appium_adb_1.DEFAULT_ADB_PORT;
|
|
45
|
+
}
|
|
46
|
+
function getAdb(adbPort) {
|
|
35
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
48
|
try {
|
|
37
49
|
if (!adb) {
|
|
38
|
-
|
|
50
|
+
const port = resolveAdbPort(adbPort);
|
|
51
|
+
logger_1.default.info(`Using adb server port ${port}`);
|
|
52
|
+
adb = yield appium_adb_1.ADB.createADB({ adbPort: port });
|
|
39
53
|
}
|
|
40
54
|
}
|
|
41
55
|
catch (e) {
|
|
42
56
|
console.log(e);
|
|
43
57
|
}
|
|
58
|
+
return adb;
|
|
44
59
|
});
|
|
45
60
|
}
|
|
46
61
|
function requireSdkRoot() {
|
|
@@ -86,7 +101,10 @@ function getDuckDuckGoPid() {
|
|
|
86
101
|
const packageName = 'com.duckduckgo.mobile.android';
|
|
87
102
|
try {
|
|
88
103
|
const output = yield adb.adbExec(['shell', 'pidof', packageName]);
|
|
89
|
-
|
|
104
|
+
// pidof lists every process of the package; the socket belongs to the first
|
|
105
|
+
// (browser) process, and passing the whole list builds an unusable socket
|
|
106
|
+
// name like webview_devtools_remote_1234 5678
|
|
107
|
+
const pid = String(output).trim().split(/\s+/)[0];
|
|
90
108
|
return pid || null;
|
|
91
109
|
}
|
|
92
110
|
catch (err) {
|
|
@@ -95,68 +113,51 @@ function getDuckDuckGoPid() {
|
|
|
95
113
|
}
|
|
96
114
|
});
|
|
97
115
|
}
|
|
116
|
+
const BROWSERS = {
|
|
117
|
+
chrome: { pkg: 'com.android.chrome', activity: 'com.google.android.apps.chrome.Main' },
|
|
118
|
+
brave: { pkg: 'com.brave.browser', activity: 'com.google.android.apps.chrome.Main' },
|
|
119
|
+
opera: { pkg: 'com.opera.browser', activity: 'com.opera.android.BrowserActivity' },
|
|
120
|
+
duckduckgo: { pkg: 'com.duckduckgo.mobile.android', activity: 'com.duckduckgo.app.browser.BrowserActivity' },
|
|
121
|
+
samsung: { pkg: 'com.sec.android.app.sbrowser', activity: 'com.sec.android.app.sbrowser.SBrowserMainActivity' },
|
|
122
|
+
terrance: { pkg: 'com.sec.android.app.sbrowser', activity: 'com.sec.android.app.sbrowser.SBrowserMainActivity' },
|
|
123
|
+
edge: { pkg: 'com.microsoft.emmx', activity: 'com.microsoft.ruby.Main' },
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Open the start URL in an already-running browser.
|
|
127
|
+
*
|
|
128
|
+
* Deliberately a plain VIEW intent rather than startApplication: the latter
|
|
129
|
+
* passes -S, which force-stops the process. That changes the pid, and for
|
|
130
|
+
* WebView-based browsers the devtools socket name carries the pid, so an
|
|
131
|
+
* existing port forward is left pointing at a socket that no longer exists.
|
|
132
|
+
*/
|
|
133
|
+
function openStartUrl(browser_1) {
|
|
134
|
+
return __awaiter(this, arguments, void 0, function* (browser, url = 'https://www.appium.io') {
|
|
135
|
+
var _a;
|
|
136
|
+
const pkg = (_a = BROWSERS[browser]) === null || _a === void 0 ? void 0 : _a.pkg;
|
|
137
|
+
if (!pkg) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
// -n <component>: a bare trailing package is not honoured by am, so the intent
|
|
141
|
+
// would go to whichever browser handles VIEW by default rather than this one
|
|
142
|
+
yield adb.adbExec([
|
|
143
|
+
'shell', 'am', 'start', '-a', 'android.intent.action.VIEW', '-d', url,
|
|
144
|
+
'-n', `${pkg}/${BROWSERS[browser].activity}`,
|
|
145
|
+
]);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
98
148
|
function startApplication() {
|
|
99
149
|
return __awaiter(this, arguments, void 0, function* (browser = 'chrome') {
|
|
100
|
-
const
|
|
150
|
+
const target = BROWSERS[browser];
|
|
151
|
+
if (!target) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
logger_1.default.info(`Starting ${browser}`);
|
|
155
|
+
yield adb.startApp({
|
|
156
|
+
pkg: target.pkg,
|
|
157
|
+
activity: target.activity,
|
|
101
158
|
waitDuration: START_APP_WAIT_DURATION,
|
|
102
159
|
optionalIntentArguments: '-d www.appium.io',
|
|
103
|
-
};
|
|
104
|
-
const chrome = {
|
|
105
|
-
pkg: 'com.android.chrome',
|
|
106
|
-
activity: 'com.google.android.apps.chrome.Main',
|
|
107
|
-
};
|
|
108
|
-
const terrance = {
|
|
109
|
-
pkg: 'com.sec.android.app.sbrowser',
|
|
110
|
-
activity: 'com.sec.android.app.sbrowser.SBrowserMainActivity',
|
|
111
|
-
};
|
|
112
|
-
const brave = {
|
|
113
|
-
pkg: 'com.brave.browser',
|
|
114
|
-
activity: 'com.google.android.apps.chrome.Main',
|
|
115
|
-
};
|
|
116
|
-
const opera = {
|
|
117
|
-
pkg: 'com.opera.browser',
|
|
118
|
-
activity: 'com.opera.android.BrowserActivity',
|
|
119
|
-
};
|
|
120
|
-
const duckduckgo = {
|
|
121
|
-
pkg: 'com.duckduckgo.mobile.android',
|
|
122
|
-
activity: 'com.duckduckgo.app.browser.BrowserActivity',
|
|
123
|
-
};
|
|
124
|
-
const samsung = {
|
|
125
|
-
pkg: 'com.sec.android.app.sbrowser',
|
|
126
|
-
activity: 'com.sec.android.app.sbrowser.SBrowserMainActivity',
|
|
127
|
-
};
|
|
128
|
-
const edge = {
|
|
129
|
-
pkg: 'com.microsoft.emmx',
|
|
130
|
-
activity: 'com.microsoft.ruby.Main',
|
|
131
|
-
};
|
|
132
|
-
if (browser === 'chrome') {
|
|
133
|
-
logger_1.default.info(`Starting Chrome`);
|
|
134
|
-
yield adb.startApp(Object.assign({}, chrome, common));
|
|
135
|
-
}
|
|
136
|
-
else if (browser === 'terrance') {
|
|
137
|
-
logger_1.default.info(`Starting Terrance`);
|
|
138
|
-
yield adb.startApp(Object.assign({}, terrance, common));
|
|
139
|
-
}
|
|
140
|
-
else if (browser === 'brave') {
|
|
141
|
-
logger_1.default.info(`Starting Brave`);
|
|
142
|
-
yield adb.startApp(Object.assign({}, brave, common));
|
|
143
|
-
}
|
|
144
|
-
else if (browser === 'opera') {
|
|
145
|
-
logger_1.default.info(`Starting Opera`);
|
|
146
|
-
yield adb.startApp(Object.assign({}, opera, common));
|
|
147
|
-
}
|
|
148
|
-
else if (browser === 'duckduckgo') {
|
|
149
|
-
logger_1.default.info(`Starting DuckDuckGo`);
|
|
150
|
-
yield adb.startApp(Object.assign({}, duckduckgo, common));
|
|
151
|
-
}
|
|
152
|
-
else if (browser === 'samsung') {
|
|
153
|
-
logger_1.default.info(`Starting Samsung Browser`);
|
|
154
|
-
yield adb.startApp(Object.assign({}, samsung, common));
|
|
155
|
-
}
|
|
156
|
-
else if (browser === 'edge') {
|
|
157
|
-
logger_1.default.info(`Starting MS Edge`);
|
|
158
|
-
yield adb.startApp(Object.assign({}, edge, common));
|
|
159
|
-
}
|
|
160
|
+
});
|
|
160
161
|
});
|
|
161
162
|
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXVCQSx3Q0FJQztBQUVELHdCQVdDO0FBRUQsd0NBc0JDO0FBRUQsMEJBb0JDO0FBbUNELG9DQVdDO0FBRUQsNENBWUM7QUFsSkQsMkNBQXNFO0FBQ3RFLDZDQUFxQztBQUNyQyx3REFBK0I7QUFDL0Isc0RBQTJCO0FBRTNCLElBQUksR0FBRyxDQUFDO0FBQ1IsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixNQUFNLEVBQUUsd0JBQXdCO0lBQ2hDLEtBQUssRUFBRSx3QkFBd0I7SUFDL0IsS0FBSyxFQUFFLDRCQUE0QjtJQUNuQyxVQUFVLEVBQUUseUJBQXlCO0lBQ3JDLE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixRQUFRLEVBQUUsOENBQThDO0NBQ3pELENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQU87SUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7SUFDdEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBZ0IsQ0FBQztBQUN0RSxDQUFDO0FBRUQsU0FBc0IsTUFBTSxDQUFDLE9BQU87O1FBQ2xDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JB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
|
package/build/src/driver.js
CHANGED
|
@@ -34,6 +34,10 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
|
|
|
34
34
|
presence: true,
|
|
35
35
|
isString: true,
|
|
36
36
|
},
|
|
37
|
+
adbPort: {
|
|
38
|
+
isNumber: false,
|
|
39
|
+
presence: false,
|
|
40
|
+
},
|
|
37
41
|
};
|
|
38
42
|
}
|
|
39
43
|
createSession(jwpCaps, reqCaps, w3cCaps, otherDriverData) {
|
|
@@ -44,7 +48,7 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
|
|
|
44
48
|
console.log(yield (0, taiko_1.getConfig)('local'));
|
|
45
49
|
const res = yield _super.createSession.call(this, w3cCaps);
|
|
46
50
|
const browser = w3cCaps.alwaysMatch['browserName'];
|
|
47
|
-
yield (0, adb_1.getAdb)();
|
|
51
|
+
yield (0, adb_1.getAdb)(w3cCaps.alwaysMatch['appium:adbPort']);
|
|
48
52
|
let port;
|
|
49
53
|
if (browser === 'duckduckgo') {
|
|
50
54
|
yield (0, adb_1.startApplication)(browser);
|
|
@@ -67,6 +71,16 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
|
|
|
67
71
|
const data = yield res.json();
|
|
68
72
|
logger_1.default.info(`CDP response: ${JSON.stringify(data)}`);
|
|
69
73
|
if (!Array.isArray(data) || data.length === 0) {
|
|
74
|
+
// The socket is up but the browser holds no debuggable page — common
|
|
75
|
+
// for WebView-based browsers just after launch. Retrying the fetch
|
|
76
|
+
// alone changes nothing, so nudge the browser into opening one.
|
|
77
|
+
logger_1.default.info('Debug list is empty, opening the start URL to create a page');
|
|
78
|
+
try {
|
|
79
|
+
yield (0, adb_1.openStartUrl)(browser);
|
|
80
|
+
}
|
|
81
|
+
catch (launchError) {
|
|
82
|
+
logger_1.default.info(`Could not open the start URL: ${launchError.message}`);
|
|
83
|
+
}
|
|
70
84
|
throw new Error('Debug list is empty or invalid');
|
|
71
85
|
}
|
|
72
86
|
return data;
|
|
@@ -81,9 +95,19 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
|
|
|
81
95
|
minTimeout: 2000,
|
|
82
96
|
maxTimeout: 10000,
|
|
83
97
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
// Prefer the page we launched, but do not require it: after a redirect, a
|
|
99
|
+
// new tab, or an onboarding page the list holds other targets, and reading
|
|
100
|
+
// webSocketDebuggerUrl off undefined fails the session with an opaque error.
|
|
101
|
+
let target = data.find((t) => t.url && t.url.includes('appium.io'));
|
|
102
|
+
if (!target) {
|
|
103
|
+
target =
|
|
104
|
+
data.find((t) => t.type === 'page' && t.webSocketDebuggerUrl) ||
|
|
105
|
+
data.find((t) => t.webSocketDebuggerUrl);
|
|
106
|
+
logger_1.default.info(`No appium.io target; falling back to ${target ? target.url || target.type : 'none'}`);
|
|
107
|
+
}
|
|
108
|
+
if (!target) {
|
|
109
|
+
throw new Error(`No CDP target with a webSocketDebuggerUrl in ${JSON.stringify(data)}`);
|
|
110
|
+
}
|
|
87
111
|
logger_1.default.info(`Target found: ${target.webSocketDebuggerUrl}`);
|
|
88
112
|
yield (0, taiko_1.openBrowser)({
|
|
89
113
|
port: port,
|
|
@@ -104,4 +128,4 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
|
|
|
104
128
|
}
|
|
105
129
|
exports.AppiumCDPDriver = AppiumCDPDriver;
|
|
106
130
|
Object.assign(AppiumCDPDriver.prototype, commands_1.default);
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsK0JBQXdFO0FBQ3hFLGlDQUFxRDtBQUNyRCwwREFBa0M7QUFDbEMsc0RBQTJCO0FBQzNCLDREQUErQjtBQUMvQiw4REFBZ0M7QUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sZUFBZ0IsU0FBUSx3QkFBVTtJQUN0QyxZQUFZLElBQUk7UUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHO1lBQzNCLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlOzs7OztZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFNLGFBQWEsWUFBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBQSxZQUFNLEVBQUMsT0FBTyxDQUFDLFdBQVcsQ0FB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
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"appium",
|
|
6
6
|
"chrome-dev-tools"
|
|
7
7
|
],
|
|
8
|
-
"version": "1.0.
|
|
8
|
+
"version": "1.0.8",
|
|
9
9
|
"author": "",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"repository": {
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"chai": "^4.3.6",
|
|
67
67
|
"chrome-remote-interface": "^0.31.3",
|
|
68
68
|
"get-port": "^5.1.1",
|
|
69
|
+
"node-fetch": "^2.6.7",
|
|
69
70
|
"taiko": "https://github.com/getgauge/taiko.git"
|
|
70
71
|
},
|
|
71
72
|
"peerDependencies": {
|