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.
@@ -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 adb = yield appium_adb_1.ADB.createADB();
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
- const nextButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/continue_button');
74
- logger_js_1.default.info(`Next button is ${JSON.stringify(nextButton, null, 2)}`);
75
- yield driver.click(nextButton.ELEMENT);
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 driver.click(skipButton.ELEMENT);
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 driver.click(skipAgainButton.ELEMENT);
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
- const allowButton = yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Allow"]');
106
- yield driver.click(allowButton.ELEMENT);
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 driver.click(doneButton.ELEMENT);
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 driver.deleteSession();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL29wZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsaUVBQW1DO0FBQ25DLHVDQUE0QztBQUU1QyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLEtBQUssR0FBRztJQUNaLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsUUFBUSxFQUFFLG1DQUFtQztDQUM5QyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLHVCQUF1QixFQUFFLGtCQUFrQjtDQUM1QyxDQUFDO0FBRUYsU0FBZSxnQkFBZ0I7O1FBQzdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsdURBQXVEO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksc0RBQXlCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxtQ0FBbUM7U0FDMUQsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FB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
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL29wZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsMENBQStDO0FBQy9DLGlFQUFtQztBQUNuQyx1Q0FBNEM7QUFDNUMsdURBQStEO0FBRS9ELE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0FBRXRDLE1BQU0sS0FBSyxHQUFHO0lBQ1osR0FBRyxFQUFFLG1CQUFtQjtJQUN4QixRQUFRLEVBQUUsbUNBQW1DO0NBQzlDLENBQUM7QUFFRixNQUFNLE1BQU0sR0FBRztJQUNiLFlBQVksRUFBRSx1QkFBdUI7SUFDckMsdUJBQXVCLEVBQUUsa0JBQWtCO0NBQzVDLENBQUM7QUFFRixTQUFlLGdCQUFnQjs7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBQSx1QkFBYyxHQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0MsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLHVEQUF1RDtRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLHNEQUF5QixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUc7WUFDWCxZQUFZLEVBQUUsU0FBUztZQUN2Qix1QkFBdUIsRUFBRSxjQUFjO1lBQ3ZDLGdCQUFnQixFQUFFLE9BQU87WUFDekIsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxtQ0FBbUM7U0FDMUQsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdB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
@@ -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 adb = yield appium_adb_1.ADB.createADB();
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
- try {
75
- const buttonToClick = yield findElementWithWaitForCondition('id', 'com.sec.android.app.sbrowser:id/help_intro_legal_agree_button');
76
- logger_js_1.default.info(`Button to click is ${JSON.stringify(buttonToClick, null, 2)}`);
77
- yield driver.click(buttonToClick.ELEMENT);
78
- }
79
- catch (error) {
80
- logger_js_1.default.info(`Continue button not found, retrying...`);
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
- finally {
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 driver.deleteSession();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Ftc3VuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NjcmlwdHMvc2Ftc3VuZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSwyRUFBdUU7QUFDdkUsMkNBQWlDO0FBQ2pDLGlFQUFtQztBQUNuQyx1Q0FBNEM7QUFFNUMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxPQUFPLEdBQUc7SUFDZCxHQUFHLEVBQUUsOEJBQThCO0lBQ25DLFFBQVEsRUFBRSxtREFBbUQ7Q0FDOUQsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFHO0lBQ2IsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyx1QkFBdUIsRUFBRSxrQkFBa0I7Q0FDNUMsQ0FBQztBQUVGLFNBQWUsa0JBQWtCOztRQUMvQixNQUFNLEdBQUcsR0FBRyxNQUFNLGdCQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxzREFBeUIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHO1lBQ1gsWUFBWSxFQUFFLFNBQVM7WUFDdkIsdUJBQXVCLEVBQUUsY0FBYztZQUN2QyxtQkFBbUIsRUFBRSxnQkFBZ0I7WUFDckMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDdkMsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMs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
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
- function getAdb() {
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
- adb = yield appium_adb_1.ADB.createADB();
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
- const pid = output.trim();
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 common = {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQWtCQSx3QkFRQztBQUVELHdDQXNCQztBQUVELDBCQW9CQztBQWNELDRDQThEQztBQXBKRCwyQ0FBb0Q7QUFDcEQsNkNBQXFDO0FBQ3JDLHdEQUErQjtBQUMvQixzREFBMkI7QUFFM0IsSUFBSSxHQUFHLENBQUM7QUFDUixNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLG1CQUFtQixHQUFHO0lBQzFCLE1BQU0sRUFBRSx3QkFBd0I7SUFDaEMsS0FBSyxFQUFFLHdCQUF3QjtJQUMvQixLQUFLLEVBQUUsNEJBQTRCO0lBQ25DLFVBQVUsRUFBRSx5QkFBeUI7SUFDckMsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFFBQVEsRUFBRSw4Q0FBOEM7Q0FDekQsQ0FBQztBQUVGLFNBQXNCLE1BQU07O1FBQzFCLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxHQUFHLEdBQUcsTUFBTSxnQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7Q0FBQTtBQUVELFNBQXNCLGNBQWM7O1FBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUEsOEJBQWlCLEdBQUUsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FDVixtRkFBbUYsQ0FBQztRQUN0RixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUNiLGdGQUFnRixNQUFNLEVBQUUsQ0FDekYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJ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
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXVCQSx3Q0FJQztBQUVELHdCQVdDO0FBRUQsd0NBc0JDO0FBRUQsMEJBb0JDO0FBbUNELG9DQVdDO0FBRUQsNENBWUM7QUFsSkQsMkNBQXNFO0FBQ3RFLDZDQUFxQztBQUNyQyx3REFBK0I7QUFDL0Isc0RBQTJCO0FBRTNCLElBQUksR0FBRyxDQUFDO0FBQ1IsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixNQUFNLEVBQUUsd0JBQXdCO0lBQ2hDLEtBQUssRUFBRSx3QkFBd0I7SUFDL0IsS0FBSyxFQUFFLDRCQUE0QjtJQUNuQyxVQUFVLEVBQUUseUJBQXlCO0lBQ3JDLE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixRQUFRLEVBQUUsOENBQThDO0NBQ3pELENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQU87SUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7SUFDdEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBZ0IsQ0FBQztBQUN0RSxDQUFDO0FBRUQsU0FBc0IsTUFBTSxDQUFDLE9BQU87O1FBQ2xDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JB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
@@ -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
- const target = data.find((target) => {
85
- return target.url.includes('appium.io');
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsK0JBQTBEO0FBQzFELGlDQUFxRDtBQUNyRCwwREFBa0M7QUFDbEMsc0RBQTJCO0FBQzNCLDREQUErQjtBQUMvQiw4REFBZ0M7QUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sZUFBZ0IsU0FBUSx3QkFBVTtJQUN0QyxZQUFZLElBQUk7UUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHO1lBQzNCLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlOzs7OztZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFNLGFBQWEsWUFBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBQSxZQUFNLEdBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDO1lBQ1QsSUFBSSxPQUFPLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBQSxzQkFB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
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.6",
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": {