appium-cdp-driver 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -30,10 +30,10 @@ LOCAL_PROTOCOL=true appium server -pa /wd/hub --use-drivers=cdp-driver
30
30
 
31
31
  ### Appium Capabilities
32
32
 
33
- | Capability | Required | Type | Description |
34
- | ----------------------- | :------: | :----: | --------------------------------------------------- |
35
- | `appium:automationName` | + | string | Must be `CDP` |
36
- | `appium:browserName` | + | string | Must be `chrome` or `Terrace` or `opera` or `brave` |
33
+ | Capability | Required | Type | Description |
34
+ | ----------------------- | :------: | :----: | ------------------------------------------------------------------- |
35
+ | `appium:automationName` | + | string | Must be `CDP` |
36
+ | `appium:browserName` | + | string | Must be `chrome` or `Terrace` or `opera` or `brave` or `duckduckgo` |
37
37
 
38
38
  ### W3C Capabilities
39
39
 
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const appium_uiautomator2_driver_1 = require("appium-uiautomator2-driver");
17
+ const appium_adb_1 = require("appium-adb");
18
+ const logger_js_1 = __importDefault(require("../src/logger.js"));
19
+ const asyncbox_1 = require("asyncbox");
20
+ const START_APP_WAIT_DURATION = 60000;
21
+ const brave = {
22
+ pkg: 'com.brave.browser',
23
+ activity: 'com.google.android.apps.chrome.Main',
24
+ };
25
+ const common = {
26
+ waitDuration: START_APP_WAIT_DURATION,
27
+ optionalIntentArguments: '-d www.appium.io',
28
+ };
29
+ function skipWelcomeBrave() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const adb = yield appium_adb_1.ADB.createADB();
32
+ yield adb.adbExec(['shell', 'pm', 'clear', 'com.brave.browser']);
33
+ //await adb.startApp(Object.assign({}, opera, common));
34
+ const driver = new appium_uiautomator2_driver_1.AndroidUiautomator2Driver();
35
+ const caps = {
36
+ platformName: "Android",
37
+ "appium:automationName": "UiAutomator2",
38
+ "appium:deviceName": "Android Device",
39
+ "appium:appPackage": "com.brave.browser",
40
+ "appium:appActivity": "com.google.android.apps.chrome.Main",
41
+ };
42
+ try {
43
+ yield driver.createSession(null, {
44
+ alwaysMatch: caps,
45
+ firstMatch: [{}],
46
+ });
47
+ const activity = yield driver.getCurrentActivity();
48
+ logger_js_1.default.info(`Activity is ${activity}`);
49
+ if (activity.includes('Welcome')) {
50
+ const findElementWithWaitForCondition = (strategy_1, selector_1, ...args_1) => __awaiter(this, [strategy_1, selector_1, ...args_1], void 0, function* (strategy, selector, timeout = 6000) {
51
+ try {
52
+ return yield (0, asyncbox_1.waitForCondition)(() => __awaiter(this, void 0, void 0, function* () {
53
+ try {
54
+ logger_js_1.default.info(`Attempting to find element (${strategy}: ${selector})`);
55
+ const element = yield driver.findElement(strategy, selector);
56
+ logger_js_1.default.info(`Successfully found element (${strategy}: ${selector})`);
57
+ return element;
58
+ }
59
+ catch (error) {
60
+ // Return false to continue waiting
61
+ return false;
62
+ }
63
+ }), {
64
+ waitMs: timeout,
65
+ intervalMs: 1000,
66
+ });
67
+ }
68
+ catch (error) {
69
+ throw new Error(`Failed to find element (${strategy}: ${selector}) within ${timeout}ms timeout: ${error.message}`);
70
+ }
71
+ });
72
+ const cancelButton = yield findElementWithWaitForCondition('id', 'android:id/button2');
73
+ logger_js_1.default.info(`Cancel button is ${JSON.stringify(cancelButton, null, 2)}`);
74
+ yield driver.click(cancelButton.ELEMENT);
75
+ try {
76
+ yield findElementWithWaitForCondition('xpath', '//android.widget.TextView[@text="Allow Brave to send you notifications?"]');
77
+ const allowButton = yield findElementWithWaitForCondition('id', 'com.android.permissioncontroller:id/permission_allow_button');
78
+ yield driver.click(allowButton.ELEMENT);
79
+ }
80
+ catch (error) {
81
+ logger_js_1.default.info(`Help make Brave better text not found, skipping`);
82
+ }
83
+ const laterButton = yield findElementWithWaitForCondition('id', 'com.brave.browser:id/btn_negative');
84
+ yield driver.click(laterButton.ELEMENT);
85
+ yield findElementWithWaitForCondition('xpath', '//android.widget.TextView[@text="Help make Brave better."]');
86
+ const continueButton = yield findElementWithWaitForCondition('id', 'com.brave.browser:id/btn_positive');
87
+ yield driver.click(continueButton.ELEMENT);
88
+ }
89
+ }
90
+ finally {
91
+ yield driver.deleteSession();
92
+ }
93
+ });
94
+ }
95
+ (() => __awaiter(void 0, void 0, void 0, function* () {
96
+ yield skipWelcomeBrave();
97
+ process.exit(0);
98
+ }))();
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL2JyYXZlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsaUVBQW1DO0FBQ25DLHVDQUE0QztBQUU1QyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLEtBQUssR0FBRztJQUNaLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsUUFBUSxFQUFFLHFDQUFxQztDQUNoRCxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLHVCQUF1QixFQUFFLGtCQUFrQjtDQUM1QyxDQUFDO0FBRUYsU0FBZSxnQkFBZ0I7O1FBQzdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsdURBQXVEO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksc0RBQXlCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxxQ0FBcUM7U0FDNUQsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FB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
@@ -0,0 +1,100 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const appium_uiautomator2_driver_1 = require("appium-uiautomator2-driver");
17
+ const appium_adb_1 = require("appium-adb");
18
+ const logger_js_1 = __importDefault(require("../src/logger.js"));
19
+ const asyncbox_1 = require("asyncbox");
20
+ const START_APP_WAIT_DURATION = 60000;
21
+ const duckduckgo = {
22
+ pkg: 'com.duckduckgo.mobile.android',
23
+ activity: 'com.duckduckgo.app.browser.BrowserActivity',
24
+ };
25
+ const common = {
26
+ waitDuration: START_APP_WAIT_DURATION,
27
+ optionalIntentArguments: '-d www.appium.io',
28
+ };
29
+ function skipWelcomeDuckDuckGo() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const adb = yield appium_adb_1.ADB.createADB();
32
+ yield adb.adbExec(['shell', 'pm', 'clear', 'com.duckduckgo.mobile.android']);
33
+ const driver = new appium_uiautomator2_driver_1.AndroidUiautomator2Driver();
34
+ const caps = {
35
+ platformName: "Android",
36
+ "appium:automationName": "UiAutomator2",
37
+ "appium:deviceName": "Android Device",
38
+ "appium:appPackage": "com.duckduckgo.mobile.android",
39
+ "appium:appActivity": "com.duckduckgo.app.browser.BrowserActivity",
40
+ };
41
+ try {
42
+ yield driver.createSession(null, {
43
+ alwaysMatch: caps,
44
+ firstMatch: [{}],
45
+ });
46
+ const activity = yield driver.getCurrentActivity();
47
+ logger_js_1.default.info(`Activity is ${activity}`);
48
+ if (activity.includes('BrowserActivity')) {
49
+ const findElementWithWaitForCondition = (strategy_1, selector_1, ...args_1) => __awaiter(this, [strategy_1, selector_1, ...args_1], void 0, function* (strategy, selector, timeout = 6000) {
50
+ try {
51
+ return yield (0, asyncbox_1.waitForCondition)(() => __awaiter(this, void 0, void 0, function* () {
52
+ try {
53
+ logger_js_1.default.info(`Attempting to find element (${strategy}: ${selector})`);
54
+ const element = yield driver.findElement(strategy, selector);
55
+ logger_js_1.default.info(`Successfully found element (${strategy}: ${selector})`);
56
+ return element;
57
+ }
58
+ catch (error) {
59
+ // Return false to continue waiting
60
+ return false;
61
+ }
62
+ }), {
63
+ waitMs: timeout,
64
+ intervalMs: 1000,
65
+ });
66
+ }
67
+ catch (error) {
68
+ throw new Error(`Failed to find element (${strategy}: ${selector}) within ${timeout}ms timeout: ${error.message}`);
69
+ }
70
+ });
71
+ let attempt = 0;
72
+ let found = false;
73
+ const MAX_RETRIES = 3;
74
+ while (attempt < MAX_RETRIES && !found) {
75
+ try {
76
+ const dismissButton = yield findElementWithWaitForCondition('id', 'com.duckduckgo.mobile.android:id/bottomSheetPromoSecondaryButton');
77
+ logger_js_1.default.info(`Dismiss button found: ${JSON.stringify(dismissButton, null, 2)} in attempt ${attempt}`);
78
+ yield driver.click(dismissButton.ELEMENT);
79
+ found = true;
80
+ }
81
+ catch (error) {
82
+ logger_js_1.default.info(`Dismiss button not found, retrying after opening a url...`);
83
+ }
84
+ finally {
85
+ yield adb.shell(['am', 'start', '-a', 'android.intent.action.VIEW', '-d', 'https://www.appium.io', duckduckgo.pkg]);
86
+ attempt++;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ finally {
92
+ yield driver.deleteSession();
93
+ }
94
+ });
95
+ }
96
+ (() => __awaiter(void 0, void 0, void 0, function* () {
97
+ yield skipWelcomeDuckDuckGo();
98
+ process.exit(0);
99
+ }))();
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVja2R1Y2tnby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NjcmlwdHMvZHVja2R1Y2tnby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSwyRUFBdUU7QUFDdkUsMkNBQWlDO0FBQ2pDLGlFQUFtQztBQUNuQyx1Q0FBNEM7QUFFNUMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxVQUFVLEdBQUc7SUFDakIsR0FBRyxFQUFFLCtCQUErQjtJQUNwQyxRQUFRLEVBQUUsNENBQTRDO0NBQ3ZELENBQUM7QUFFRixNQUFNLE1BQU0sR0FBRztJQUNiLFlBQVksRUFBRSx1QkFBdUI7SUFDckMsdUJBQXVCLEVBQUUsa0JBQWtCO0NBQzVDLENBQUM7QUFFRixTQUFlLHFCQUFxQjs7UUFDbEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLCtCQUErQixDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLE1BQU0sR0FBRyxJQUFJLHNEQUF5QixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUc7WUFDWCxZQUFZLEVBQUUsU0FBUztZQUN2Qix1QkFBdUIsRUFBRSxjQUFjO1lBQ3ZDLG1CQUFtQixFQUFFLGdCQUFnQjtZQUNyQyxtQkFBbUIsRUFBRSwrQkFBK0I7WUFDcEQsb0JBQW9CLEVBQUUsNENBQTRDO1NBQ25FLENBQUM7UUFDRixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO2dCQUMvQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ2pCLENBQUMsQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUM7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
@@ -44,9 +44,6 @@ function skipWelcomeOpera() {
44
44
  alwaysMatch: caps,
45
45
  firstMatch: [{}],
46
46
  });
47
- yield driver.updateSettings({
48
- waitForIdleTimeout: 0,
49
- });
50
47
  const activity = yield driver.getCurrentActivity();
51
48
  logger_js_1.default.info(`Activity is ${activity}`);
52
49
  if (activity.includes('Welcome')) {
@@ -77,18 +74,51 @@ function skipWelcomeOpera() {
77
74
  logger_js_1.default.info(`Next button is ${JSON.stringify(nextButton, null, 2)}`);
78
75
  yield driver.click(nextButton.ELEMENT);
79
76
  const skipButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/skip_button');
80
- yield driver.click(skipButton.ELEMENT);
81
- yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Enable notifications"]');
77
+ const MAX_RETRIES = 3;
78
+ let attempt = 0;
79
+ let found = false;
80
+ while (attempt < MAX_RETRIES && !found) {
81
+ yield driver.click(skipButton.ELEMENT);
82
+ try {
83
+ yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Enable notifications"]');
84
+ found = true;
85
+ }
86
+ catch (error) {
87
+ logger_js_1.default.info(`Enable notifications text not found, retrying skip...`);
88
+ attempt++;
89
+ }
90
+ }
82
91
  const skipAgainButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/skip_button');
83
- yield driver.click(skipAgainButton.ELEMENT);
92
+ attempt = 0;
93
+ found = false;
94
+ while (attempt < MAX_RETRIES && !found) {
95
+ yield driver.click(skipAgainButton.ELEMENT);
96
+ try {
97
+ yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Allow"]');
98
+ found = true;
99
+ }
100
+ catch (error) {
101
+ logger_js_1.default.info(`Enable notifications text not found, retrying skip...`);
102
+ attempt++;
103
+ }
104
+ }
84
105
  const allowButton = yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Allow"]');
85
106
  yield driver.click(allowButton.ELEMENT);
86
- try {
87
- const doneButton = yield findElementWithWaitForCondition('xpath', './/*[@text="Done"]', 3000);
88
- yield driver.click(doneButton.ELEMENT);
89
- }
90
- catch (error) {
91
- logger_js_1.default.info(`Done button not found, skipping`);
107
+ attempt = 0;
108
+ found = false;
109
+ while (attempt < MAX_RETRIES && !found) {
110
+ try {
111
+ const doneButton = yield findElementWithWaitForCondition('id', 'com.opera.browser:id/positive_button', 8000);
112
+ yield driver.click(doneButton.ELEMENT);
113
+ found = true;
114
+ }
115
+ catch (error) {
116
+ logger_js_1.default.info(`Done button not found, retrying after opening a url...`);
117
+ }
118
+ finally {
119
+ yield adb.shell(['am', 'start', '-a', 'android.intent.action.VIEW', '-d', 'https://www.appium.io', opera.pkg]);
120
+ attempt++;
121
+ }
92
122
  }
93
123
  }
94
124
  }
@@ -101,4 +131,4 @@ function skipWelcomeOpera() {
101
131
  yield skipWelcomeOpera();
102
132
  process.exit(0);
103
133
  }))();
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL29wZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsaUVBQW1DO0FBQ25DLHVDQUE0QztBQUU1QyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLEtBQUssR0FBRztJQUNaLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsUUFBUSxFQUFFLG1DQUFtQztDQUM5QyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLHVCQUF1QixFQUFFLGtCQUFrQjtDQUM1QyxDQUFDO0FBRUYsU0FBZSxnQkFBZ0I7O1FBQzdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsdURBQXVEO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksc0RBQXlCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxtQ0FBbUM7U0FDMUQsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDO2dCQUMxQixrQkFBa0IsRUFBRSxD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
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL29wZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsaUVBQW1DO0FBQ25DLHVDQUE0QztBQUU1QyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLEtBQUssR0FBRztJQUNaLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsUUFBUSxFQUFFLG1DQUFtQztDQUM5QyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLHVCQUF1QixFQUFFLGtCQUFrQjtDQUM1QyxDQUFDO0FBRUYsU0FBZSxnQkFBZ0I7O1FBQzdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsdURBQXVEO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksc0RBQXlCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLG1CQUFtQjtZQUN4QyxvQkFBb0IsRUFBRSxtQ0FBbUM7U0FDMUQsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FB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
package/build/src/adb.js CHANGED
@@ -26,6 +26,7 @@ const DEVTOOLS_SOCKET_MAP = {
26
26
  chrome: 'chrome_devtools_remote',
27
27
  brave: 'chrome_devtools_remote',
28
28
  opera: 'com.opera.browser.devtools',
29
+ duckduckgo: 'webview_devtools_remote',
29
30
  terrance: 'com.sec.android.app.sbrowser_devtools_remote',
30
31
  };
31
32
  function getAdb() {
@@ -60,7 +61,16 @@ function requireSdkRoot() {
60
61
  function adbExec() {
61
62
  return __awaiter(this, arguments, void 0, function* (browser = 'chrome') {
62
63
  let freePort = yield (0, get_port_1.default)();
63
- const devtoolsSocket = DEVTOOLS_SOCKET_MAP[browser] || `${browser}_devtools_remote`;
64
+ let devtoolsSocket = DEVTOOLS_SOCKET_MAP[browser] || `${browser}_devtools_remote`;
65
+ if (browser === 'duckduckgo') {
66
+ const pid = yield getDuckDuckGoPid(browser);
67
+ if (pid) {
68
+ devtoolsSocket = `webview_devtools_remote_${pid}`;
69
+ }
70
+ else {
71
+ throw new Error(`Unable to get PID for ${browser}`);
72
+ }
73
+ }
64
74
  yield adb.adbExec([
65
75
  'forward',
66
76
  `tcp:${freePort}`,
@@ -69,6 +79,20 @@ function adbExec() {
69
79
  return freePort;
70
80
  });
71
81
  }
82
+ function getDuckDuckGoPid() {
83
+ return __awaiter(this, arguments, void 0, function* (browser = 'duckduckgo') {
84
+ const packageName = 'com.duckduckgo.mobile.android';
85
+ try {
86
+ const output = yield adb.adbExec(['shell', 'pidof', packageName]);
87
+ const pid = output.trim();
88
+ return pid || null;
89
+ }
90
+ catch (err) {
91
+ console.error(`Unable to get PID for ${browser}:`, err.message);
92
+ return null;
93
+ }
94
+ });
95
+ }
72
96
  function startApplication() {
73
97
  return __awaiter(this, arguments, void 0, function* (browser = 'chrome') {
74
98
  const common = {
@@ -91,6 +115,10 @@ function startApplication() {
91
115
  pkg: 'com.opera.browser',
92
116
  activity: 'com.opera.android.BrowserActivity',
93
117
  };
118
+ const duckduckgo = {
119
+ pkg: 'com.duckduckgo.mobile.android',
120
+ activity: 'com.duckduckgo.app.browser.BrowserActivity',
121
+ };
94
122
  if (browser === 'chrome') {
95
123
  logger_1.default.info(`Starting Chrome`);
96
124
  yield adb.startApp(Object.assign({}, chrome, common));
@@ -107,6 +135,10 @@ function startApplication() {
107
135
  logger_1.default.info(`Starting Opera`);
108
136
  yield adb.startApp(Object.assign({}, opera, common));
109
137
  }
138
+ else if (browser === 'duckduckgo') {
139
+ logger_1.default.info(`Starting DuckDuckGo`);
140
+ yield adb.startApp(Object.assign({}, duckduckgo, common));
141
+ }
110
142
  });
111
143
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQWVBLHdCQVFDO0FBRUQsd0NBc0JDO0FBRUQsMEJBVUM7QUFFRCw0Q0FzQ0M7QUFuR0QsMkNBQW9EO0FBQ3BELDZDQUFxQztBQUNyQyx3REFBK0I7QUFDL0Isc0RBQTJCO0FBRTNCLElBQUksR0FBRyxDQUFDO0FBQ1IsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixNQUFNLEVBQUUsd0JBQXdCO0lBQ2hDLEtBQUssRUFBRSx3QkFBd0I7SUFDL0IsS0FBSyxFQUFFLDRCQUE0QjtJQUNuQyxRQUFRLEVBQUUsOENBQThDO0NBQ3pELENBQUM7QUFFRixTQUFzQixNQUFNOztRQUMxQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0NBQUE7QUFFRCxTQUFzQixjQUFjOztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFpQixHQUFFLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQ1YsbUZBQW1GLENBQUM7UUFDdEYsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYixnRkFBZ0YsTUFBTSxFQUFFLENBQ3pGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxNQUFN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
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQWdCQSx3QkFRQztBQUVELHdDQXNCQztBQUVELDBCQW9CQztBQWNELDRDQThDQztBQWxJRCwyQ0FBb0Q7QUFDcEQsNkNBQXFDO0FBQ3JDLHdEQUErQjtBQUMvQixzREFBMkI7QUFFM0IsSUFBSSxHQUFHLENBQUM7QUFDUixNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLG1CQUFtQixHQUFHO0lBQzFCLE1BQU0sRUFBRSx3QkFBd0I7SUFDaEMsS0FBSyxFQUFFLHdCQUF3QjtJQUMvQixLQUFLLEVBQUUsNEJBQTRCO0lBQ25DLFVBQVUsRUFBRSx5QkFBeUI7SUFDckMsUUFBUSxFQUFFLDhDQUE4QztDQUN6RCxDQUFDO0FBRUYsU0FBc0IsTUFBTTs7UUFDMUIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULEdBQUcsR0FBRyxNQUFNLGdCQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztDQUFBO0FBRUQsU0FBc0IsY0FBYzs7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBQSw4QkFBaUIsR0FBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUNWLG1GQUFtRixDQUFDO1FBQ3RGLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0ZBQWdGLE1BQU0sRUFBRSxDQUN6RixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMs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
@@ -47,7 +47,8 @@ commands.elementEnabled = function elementEnabled(elementId) {
47
47
  commands.setValue = function setValue(value, elementId) {
48
48
  return __awaiter(this, void 0, void 0, function* () {
49
49
  const element = find_1.elementCache[elementId];
50
- yield (0, taiko_1.write)(value, (0, taiko_1.into)(element));
50
+ const input = Array.isArray(value) ? value.join('') : value;
51
+ yield (0, taiko_1.write)(input, (0, taiko_1.into)(element));
51
52
  });
52
53
  };
53
54
  commands.clear = function clear(elementId) {
@@ -81,4 +82,4 @@ commands.getName = function getName(elementId) {
81
82
  };
82
83
  Object.assign(extensions, commands, helpers);
83
84
  exports.default = extensions;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbGVtZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGlDQUFtRDtBQUNuRCxpQ0FBc0M7QUFFdEMsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUNmLE9BQU8sR0FBRyxFQUFFLEVBQ1osVUFBVSxHQUFHLEVBQUUsQ0FBQztBQTBEVCw0QkFBUTtBQUFFLDBCQUFPO0FBeEQxQixTQUFlLE1BQU0sQ0FBQyxPQUFPOztRQUMzQixNQUFNLElBQUEsYUFBSyxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FBQTtBQUNELFFBQVEsQ0FBQyxLQUFLLEdBQUcsU0FBZSxLQUFLLENBQUMsU0FBUzs7UUFDN0MsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBZSxPQUFPLENBQUMsU0FBUzs7UUFDakQsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxTQUFlLGdCQUFnQixDQUFDLFNBQVM7O1FBQ25FLE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUFBLENBQUM7QUFFRixRQUFRLENBQUMsY0FBYyxHQUFHLFNBQWUsY0FBYyxDQUFDLFNBQVM7O1FBQy9ELE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLENBQUEsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQztJQUNyQyxDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxRQUFRLEdBQUcsU0FBZSxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVM7O1FBQzFELE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFBLGFBQUssRUFBQyxLQUFLLEVBQUUsSUFBQSxZQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxLQUFLLEdBQUcsU0FBZSxLQUFLLENBQUMsU0FBUzs7UUFDN0MsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUEsYUFBSyxFQUFDLEVBQUUsRUFBRSxJQUFBLFlBQUksRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FBQSxDQUFDO0FBRUYsUUFBUSxDQUFDLFlBQVksR0FBRyxTQUFlLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUzs7UUFDbEUsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxjQUFjLEdBQUcsU0FBZSxjQUFjLENBQUMsU0FBUzs7UUFDL0QsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sSUFBQSxnQkFBUSxFQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBRXpDLE1BQU0sRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvRCxPQUFPLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUEsQ0FBQTtBQUVELFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBZSxPQUFPLENBQUMsU0FBUzs7UUFDakQsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sSUFBQSxnQkFBUSxFQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBRTFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FBQSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTdDLGtCQUFlLFVBQVUsQ0FBQyJ9
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbGVtZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGlDQUFtRDtBQUNuRCxpQ0FBc0M7QUFFdEMsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUNmLE9BQU8sR0FBRyxFQUFFLEVBQ1osVUFBVSxHQUFHLEVBQUUsQ0FBQztBQTJEVCw0QkFBUTtBQUFFLDBCQUFPO0FBekQxQixTQUFlLE1BQU0sQ0FBQyxPQUFPOztRQUMzQixNQUFNLElBQUEsYUFBSyxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FBQTtBQUNELFFBQVEsQ0FBQyxLQUFLLEdBQUcsU0FBZSxLQUFLLENBQUMsU0FBUzs7UUFDN0MsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBZSxPQUFPLENBQUMsU0FBUzs7UUFDakQsTUFBTSxPQUFPLEdBQUcsbUJBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxTQUFlLGdCQUFnQixDQUFDLFNBQVM7O1FBQ25FLE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUFBLENBQUM7QUFFRixRQUFRLENBQUMsY0FBYyxHQUFHLFNBQWUsY0FBYyxDQUFDLFNBQVM7O1FBQy9ELE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLENBQUEsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQztJQUNyQyxDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxRQUFRLEdBQUcsU0FBZSxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVM7O1FBQzFELE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzVELE1BQU0sSUFBQSxhQUFLLEVBQUMsS0FBSyxFQUFFLElBQUEsWUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUFBLENBQUM7QUFFRixRQUFRLENBQUMsS0FBSyxHQUFHLFNBQWUsS0FBSyxDQUFDLFNBQVM7O1FBQzdDLE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFBLGFBQUssRUFBQyxFQUFFLEVBQUUsSUFBQSxZQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxZQUFZLEdBQUcsU0FBZSxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVM7O1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUFBLENBQUM7QUFFRixRQUFRLENBQUMsY0FBYyxHQUFHLFNBQWUsY0FBYyxDQUFDLFNBQVM7O1FBQy9ELE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUV6QyxNQUFNLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0QsT0FBTyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUFBLENBQUE7QUFFRCxRQUFRLENBQUMsT0FBTyxHQUFHLFNBQWUsT0FBTyxDQUFDLFNBQVM7O1FBQ2pELE1BQU0sT0FBTyxHQUFHLG1CQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUUxQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUU3QyxrQkFBZSxVQUFVLENBQUMifQ==
@@ -31,15 +31,27 @@ helpers.findElOrEls = function findElOrEls(strategy, selector, mult, context) {
31
31
  logger_1.default.info(`Selector is ${selector}`);
32
32
  logger_1.default.info(`Mult is ${mult}`);
33
33
  logger_1.default.info(`Context is ${context}`);
34
- const elStrategy = strategy === 'xpath' ? (0, taiko_1.$)(selector) : (0, taiko_1.$)(`#${selector}`);
34
+ // const elStrategy = $(selector);
35
+ let elStrategy;
36
+ switch (strategy) {
37
+ case 'id':
38
+ elStrategy = (0, taiko_1.$)(`#${selector}`);
39
+ break;
40
+ case 'class':
41
+ elStrategy = (0, taiko_1.$)(`.${selector}`);
42
+ default:
43
+ elStrategy = (0, taiko_1.$)(selector);
44
+ }
35
45
  if ((yield elStrategy.exists()) && !mult) {
36
46
  const elementId = getUUID();
37
47
  elementCache[elementId] = elStrategy;
38
48
  return { [constants_1.W3C_ELEMENT_KEY]: elementId };
39
49
  }
40
50
  else if (mult) {
41
- let els = [];
42
- (yield (0, taiko_1.$)(selector).elements()).forEach((element) => {
51
+ const foundEls = yield elStrategy.elements();
52
+ logger_1.default.info(`Found ${foundEls.length} elements using strategy: ${strategy}`);
53
+ const els = [];
54
+ foundEls.forEach((element) => {
43
55
  const elementId = getUUID();
44
56
  elementCache[elementId] = element;
45
57
  els.push({ ELEMENT: elementId });
@@ -63,4 +75,4 @@ commands.findElements = function findElements(strategy, selector) {
63
75
  };
64
76
  Object.assign(extensions, commands, helpers);
65
77
  exports.default = extensions;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9maW5kLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUE2QztBQUM3QyxpQ0FBMEI7QUFDMUIsdURBQTRCO0FBQzVCLDZDQUF1QztBQUN2Qyx1RUFBMEU7QUFFMUUsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUNmLE9BQU8sR0FBRyxFQUFFLEVBQ1osVUFBVSxHQUFHLEVBQUUsRUFDZixZQUFZLEdBQUcsRUFBRSxDQUFDO0FBMkNYLDRCQUFRO0FBQUUsMEJBQU87QUFBRSxvQ0FBWTtBQXpDeEMsU0FBUyxPQUFPO0lBQ2QsT0FBTyxjQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkIsQ0FBQztBQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBZSxXQUFXLENBQzlDLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUNKLE9BQU87O1FBRVAsZ0JBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGdCQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQyxnQkFBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUIsZ0JBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUEsU0FBQyxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLFNBQUMsRUFBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QyxNQUFNLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUM1QixZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLDJCQUFlLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMxQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDYixDQUFDLE1BQU0sSUFBQSxTQUFDLEVBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDakQsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksb0JBQU0sQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztDQUFBLENBQUM7QUFFRixRQUFRLENBQUMsV0FBVyxHQUFHLFNBQWUsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFROztRQUNsRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQUEsQ0FBQztBQUVGLFFBQVEsQ0FBQyxZQUFZLEdBQUcsU0FBZSxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVE7O1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FBQSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTdDLGtCQUFlLFVBQVUsQ0FBQyJ9
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9maW5kLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUE2QztBQUM3QyxpQ0FBMEI7QUFDMUIsdURBQTRCO0FBQzVCLDZDQUF1QztBQUN2Qyx1RUFBMEU7QUFFMUUsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUNmLE9BQU8sR0FBRyxFQUFFLEVBQ1osVUFBVSxHQUFHLEVBQUUsRUFDZixZQUFZLEdBQUcsRUFBRSxDQUFDO0FBdURYLDRCQUFRO0FBQUUsMEJBQU87QUFBRSxvQ0FBWTtBQXJEeEMsU0FBUyxPQUFPO0lBQ2QsT0FBTyxjQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkIsQ0FBQztBQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBZSxXQUFXLENBQzlDLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUNKLE9BQU87O1FBRVAsZ0JBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGdCQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQyxnQkFBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUIsZ0JBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLGtDQUFrQztRQUNsQyxJQUFJLFVBQVUsQ0FBQztRQUNmLFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxJQUFJO2dCQUNQLFVBQVUsR0FBRyxJQUFBLFNBQUMsRUFBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsVUFBVSxHQUFHLElBQUEsU0FBQyxFQUFDLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNqQztnQkFDRSxVQUFVLEdBQUcsSUFBQSxTQUFDLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDNUIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztZQUNyQyxPQUFPLEVBQUUsQ0FBQywyQkFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDMUMsQ0FBQzthQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDaEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0MsZ0JBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUMsTUFBTSw2QkFBNkIsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMxRSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDZixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzNCLE1BQU0sU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDO2dCQUNsQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLG9CQUFNLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNILENBQUM7Q0FBQSxDQUFDO0FBRUYsUUFBUSxDQUFDLFdBQVcsR0FBRyxTQUFlLFdBQVcsQ0FBQyxRQUFRLEVBQUUsUUFBUTs7UUFDbEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUFBLENBQUM7QUFFRixRQUFRLENBQUMsWUFBWSxHQUFHLFNBQWUsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFROztRQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUU3QyxrQkFBZSxVQUFVLENBQUMifQ==
@@ -45,8 +45,15 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
45
45
  const res = yield _super.createSession.call(this, w3cCaps);
46
46
  const browser = w3cCaps.alwaysMatch['browserName'];
47
47
  yield (0, adb_1.getAdb)();
48
- const port = yield (0, adb_1.adbExec)(browser);
49
- yield (0, adb_1.startApplication)(browser);
48
+ let port;
49
+ if (browser === 'duckduckgo') {
50
+ yield (0, adb_1.startApplication)(browser);
51
+ port = yield (0, adb_1.adbExec)(browser);
52
+ }
53
+ else {
54
+ port = yield (0, adb_1.adbExec)(browser);
55
+ yield (0, adb_1.startApplication)(browser);
56
+ }
50
57
  logger_1.default.info('Browser opened');
51
58
  // Wait a bit longer for Opera to initialize its CDP interface
52
59
  yield new Promise((resolve) => setTimeout(resolve, 3000));
@@ -97,4 +104,4 @@ class AppiumCDPDriver extends base_driver_1.BaseDriver {
97
104
  }
98
105
  exports.AppiumCDPDriver = AppiumCDPDriver;
99
106
  Object.assign(AppiumCDPDriver.prototype, commands_1.default);
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsK0JBQTBEO0FBQzFELGlDQUFxRDtBQUNyRCwwREFBa0M7QUFDbEMsc0RBQTJCO0FBQzNCLDREQUErQjtBQUMvQiw4REFBZ0M7QUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sZUFBZ0IsU0FBUSx3QkFBVTtJQUN0QyxZQUFZLElBQUk7UUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHO1lBQzNCLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlOzs7OztZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFNLGFBQWEsWUFBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBQSxZQUFNLEdBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxhQUFPLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsTUFBTSxJQUFBLHNCQUFn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
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsK0JBQTBEO0FBQzFELGlDQUFxRDtBQUNyRCwwREFBa0M7QUFDbEMsc0RBQTJCO0FBQzNCLDREQUErQjtBQUMvQiw4REFBZ0M7QUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sZUFBZ0IsU0FBUSx3QkFBVTtJQUN0QyxZQUFZLElBQUk7UUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHO1lBQzNCLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlOzs7OztZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFNLGFBQWEsWUFBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBQSxZQUFNLEdBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDO1lBQ1QsSUFBSSxPQUFPLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBQSxzQkFB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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.2",
8
+ "version": "1.0.4",
9
9
  "author": "",
10
10
  "license": "Apache-2.0",
11
11
  "repository": {
@@ -32,7 +32,9 @@
32
32
  ],
33
33
  "mainClass": "AppiumCDPDriver",
34
34
  "scripts": {
35
- "skip-welcome-opera": "./build/scripts/opera.js"
35
+ "skip-welcome-opera": "./build/scripts/opera.js",
36
+ "skip-welcome-brave": "./build/scripts/brave.js",
37
+ "skip-welcome-duckduckgo": "./build/scripts/duckduckgo.js"
36
38
  }
37
39
  },
38
40
  "scripts": {
@@ -54,15 +56,15 @@
54
56
  },
55
57
  "dependencies": {
56
58
  "@appium/base-driver": "^8.5.7",
57
- "appium-uiautomator2-driver": "^4.2.3",
58
59
  "@appium/support": "^2.59.2",
59
60
  "appium-adb": "^9.10.0",
61
+ "appium-uiautomator2-driver": "^4.2.3",
60
62
  "async-retry": "^1.3.3",
63
+ "asyncbox": "3.0.0",
61
64
  "chai": "^4.3.6",
62
65
  "chrome-remote-interface": "^0.31.3",
63
66
  "get-port": "^5.1.1",
64
- "taiko": "https://github.com/getgauge/taiko.git",
65
- "asyncbox": "3.0.0"
67
+ "taiko": "https://github.com/getgauge/taiko.git"
66
68
  },
67
69
  "peerDependencies": {
68
70
  "appium": "^2.4.1 || ^3.0.0-beta.0"
package/src/adb.js CHANGED
@@ -10,6 +10,7 @@ const DEVTOOLS_SOCKET_MAP = {
10
10
  chrome: 'chrome_devtools_remote',
11
11
  brave: 'chrome_devtools_remote',
12
12
  opera: 'com.opera.browser.devtools',
13
+ duckduckgo: 'webview_devtools_remote',
13
14
  terrance: 'com.sec.android.app.sbrowser_devtools_remote',
14
15
  };
15
16
 
@@ -49,8 +50,18 @@ export async function requireSdkRoot() {
49
50
 
50
51
  export async function adbExec(browser = 'chrome') {
51
52
  let freePort = await getPort();
52
- const devtoolsSocket =
53
+ let devtoolsSocket =
53
54
  DEVTOOLS_SOCKET_MAP[browser] || `${browser}_devtools_remote`;
55
+
56
+ if (browser === 'duckduckgo') {
57
+ const pid = await getDuckDuckGoPid(browser);
58
+ if (pid) {
59
+ devtoolsSocket = `webview_devtools_remote_${pid}`;
60
+ } else {
61
+ throw new Error(`Unable to get PID for ${browser}`);
62
+ }
63
+ }
64
+
54
65
  await adb.adbExec([
55
66
  'forward',
56
67
  `tcp:${freePort}`,
@@ -58,6 +69,18 @@ export async function adbExec(browser = 'chrome') {
58
69
  ]);
59
70
  return freePort;
60
71
  }
72
+
73
+ async function getDuckDuckGoPid(browser = 'duckduckgo') {
74
+ const packageName = 'com.duckduckgo.mobile.android';
75
+ try {
76
+ const output = await adb.adbExec(['shell', 'pidof', packageName]);
77
+ const pid = output.trim();
78
+ return pid || null;
79
+ } catch (err) {
80
+ console.error(`Unable to get PID for ${browser}:`, err.message);
81
+ return null;
82
+ }
83
+ }
61
84
 
62
85
  export async function startApplication(browser = 'chrome') {
63
86
  const common = {
@@ -84,6 +107,11 @@ export async function startApplication(browser = 'chrome') {
84
107
  activity: 'com.opera.android.BrowserActivity',
85
108
  };
86
109
 
110
+ const duckduckgo = {
111
+ pkg: 'com.duckduckgo.mobile.android',
112
+ activity: 'com.duckduckgo.app.browser.BrowserActivity',
113
+ };
114
+
87
115
  if (browser === 'chrome') {
88
116
  log.info(`Starting Chrome`);
89
117
  await adb.startApp(Object.assign({}, chrome, common));
@@ -96,5 +124,8 @@ export async function startApplication(browser = 'chrome') {
96
124
  } else if (browser === 'opera') {
97
125
  log.info(`Starting Opera`);
98
126
  await adb.startApp(Object.assign({}, opera, common));
127
+ } else if (browser === 'duckduckgo') {
128
+ log.info(`Starting DuckDuckGo`);
129
+ await adb.startApp(Object.assign({}, duckduckgo, common));
99
130
  }
100
131
  }
@@ -30,7 +30,8 @@ commands.elementEnabled = async function elementEnabled(elementId) {
30
30
 
31
31
  commands.setValue = async function setValue(value, elementId) {
32
32
  const element = elementCache[elementId];
33
- await write(value, into(element));
33
+ const input = Array.isArray(value) ? value.join('') : value;
34
+ await write(input, into(element));
34
35
  };
35
36
 
36
37
  commands.clear = async function clear(elementId) {
@@ -23,14 +23,26 @@ helpers.findElOrEls = async function findElOrEls(
23
23
  log.info(`Selector is ${selector}`);
24
24
  log.info(`Mult is ${mult}`);
25
25
  log.info(`Context is ${context}`);
26
- const elStrategy = strategy === 'xpath' ? $(selector) : $(`#${selector}`);
26
+ // const elStrategy = $(selector);
27
+ let elStrategy;
28
+ switch (strategy) {
29
+ case 'id':
30
+ elStrategy = $(`#${selector}`);
31
+ break;
32
+ case 'class':
33
+ elStrategy = $(`.${selector}`);
34
+ default:
35
+ elStrategy = $(selector);
36
+ }
27
37
  if ((await elStrategy.exists()) && !mult) {
28
38
  const elementId = getUUID();
29
39
  elementCache[elementId] = elStrategy;
30
40
  return { [W3C_ELEMENT_KEY]: elementId };
31
41
  } else if (mult) {
32
- let els = [];
33
- (await $(selector).elements()).forEach((element) => {
42
+ const foundEls = await elStrategy.elements();
43
+ log.info(`Found ${foundEls.length} elements using strategy: ${strategy}`);
44
+ const els = [];
45
+ foundEls.forEach((element) => {
34
46
  const elementId = getUUID();
35
47
  elementCache[elementId] = element;
36
48
  els.push({ ELEMENT: elementId });
package/src/driver.js CHANGED
@@ -27,8 +27,14 @@ class AppiumCDPDriver extends BaseDriver {
27
27
  const res = await super.createSession(w3cCaps);
28
28
  const browser = w3cCaps.alwaysMatch['browserName'];
29
29
  await getAdb();
30
- const port = await adbExec(browser);
31
- await startApplication(browser);
30
+ let port;
31
+ if (browser === 'duckduckgo') {
32
+ await startApplication(browser);
33
+ port = await adbExec(browser);
34
+ } else {
35
+ port = await adbExec(browser);
36
+ await startApplication(browser);
37
+ }
32
38
  log.info('Browser opened');
33
39
  // Wait a bit longer for Opera to initialize its CDP interface
34
40
  await new Promise((resolve) => setTimeout(resolve, 3000));