appium-cdp-driver 1.0.4 → 1.0.6
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 +4 -4
- package/build/scripts/brave.js +1 -2
- package/build/scripts/edge.js +194 -0
- package/build/scripts/samsung.js +97 -0
- package/build/src/adb.js +19 -1
- package/package.json +4 -2
- package/src/adb.js +18 -0
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
|
|
33
|
+
| Capability | Required | Type | Description |
|
|
34
|
+
| ----------------------- | :------: | :----: | --------------------------------------------------------------------------------------- |
|
|
35
|
+
| `appium:automationName` | + | string | Must be `CDP` |
|
|
36
|
+
| `appium:browserName` | + | string | Must be one of [`chrome`, `Terrace`, `opera`, `brave`, `duckduckgo`, `samsung`, `edge`] |
|
|
37
37
|
|
|
38
38
|
### W3C Capabilities
|
|
39
39
|
|
package/build/scripts/brave.js
CHANGED
|
@@ -30,7 +30,6 @@ function skipWelcomeBrave() {
|
|
|
30
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
31
|
const adb = yield appium_adb_1.ADB.createADB();
|
|
32
32
|
yield adb.adbExec(['shell', 'pm', 'clear', 'com.brave.browser']);
|
|
33
|
-
//await adb.startApp(Object.assign({}, opera, common));
|
|
34
33
|
const driver = new appium_uiautomator2_driver_1.AndroidUiautomator2Driver();
|
|
35
34
|
const caps = {
|
|
36
35
|
platformName: "Android",
|
|
@@ -96,4 +95,4 @@ function skipWelcomeBrave() {
|
|
|
96
95
|
yield skipWelcomeBrave();
|
|
97
96
|
process.exit(0);
|
|
98
97
|
}))();
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zY3JpcHRzL2JyYXZlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDJFQUF1RTtBQUN2RSwyQ0FBaUM7QUFDakMsaUVBQW1DO0FBQ25DLHVDQUE0QztBQUU1QyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLEtBQUssR0FBRztJQUNaLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsUUFBUSxFQUFFLHFDQUFxQztDQUNoRCxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsdUJBQXVCO0lBQ3JDLHVCQUF1QixFQUFFLGtCQUFrQjtDQUM1QyxDQUFDO0FBRUYsU0FBZSxnQkFBZ0I7O1FBQzdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxzREFBeUIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHO1lBQ1gsWUFBWSxFQUFFLFNBQVM7WUFDdkIsdUJBQXVCLEVBQUUsY0FBYztZQUN2QyxtQkFBbUIsRUFBRSxnQkFBZ0I7WUFDckMsbUJBQW1CLEVBQUUsbUJBQW1CO1lBQ3hDLG9CQUFvQixFQUFFLHFDQUFxQztTQUM1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtnQkFDL0IsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNqQixDQUFDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ25ELG1CQUFH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
|
|
@@ -0,0 +1,194 @@
|
|
|
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 edge = {
|
|
22
|
+
pkg: 'com.microsoft.emmx',
|
|
23
|
+
activity: 'com.microsoft.ruby.Main',
|
|
24
|
+
};
|
|
25
|
+
const common = {
|
|
26
|
+
waitDuration: START_APP_WAIT_DURATION,
|
|
27
|
+
optionalIntentArguments: '-d www.appium.io',
|
|
28
|
+
};
|
|
29
|
+
function skipWelcomeEdge() {
|
|
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', edge.pkg]);
|
|
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": edge.pkg,
|
|
39
|
+
"appium:appActivity": edge.activity,
|
|
40
|
+
};
|
|
41
|
+
const findElementWithWaitForCondition = (strategy_1, selector_1, ...args_1) => __awaiter(this, [strategy_1, selector_1, ...args_1], void 0, function* (strategy, selector, timeout = 6000) {
|
|
42
|
+
try {
|
|
43
|
+
return yield (0, asyncbox_1.waitForCondition)(() => __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
try {
|
|
45
|
+
logger_js_1.default.info(`Attempting to find element (${strategy}: ${selector})`);
|
|
46
|
+
const element = yield driver.findElement(strategy, selector);
|
|
47
|
+
logger_js_1.default.info(`Successfully found element (${strategy}: ${selector})`);
|
|
48
|
+
return element;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
// Return false to continue waiting
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}), {
|
|
55
|
+
waitMs: timeout,
|
|
56
|
+
intervalMs: 1000,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new Error(`Failed to find element (${strategy}: ${selector}) within ${timeout}ms timeout: ${error.message}`);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
try {
|
|
64
|
+
yield driver.createSession(null, {
|
|
65
|
+
alwaysMatch: caps,
|
|
66
|
+
firstMatch: [{}],
|
|
67
|
+
});
|
|
68
|
+
const activity = yield driver.getCurrentActivity();
|
|
69
|
+
logger_js_1.default.info(`Activity is ${activity}`);
|
|
70
|
+
if (activity.includes('MicrosoftFirstRunActivity')) {
|
|
71
|
+
// wait for the page to load
|
|
72
|
+
yield new Promise(resolve => setTimeout(resolve, 5000));
|
|
73
|
+
const MAX_RETRIES = 3;
|
|
74
|
+
let attempt = 0;
|
|
75
|
+
let clicked = false;
|
|
76
|
+
let found = false;
|
|
77
|
+
var notNowButton;
|
|
78
|
+
while (attempt < MAX_RETRIES && !clicked) {
|
|
79
|
+
try {
|
|
80
|
+
notNowButton = yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Not now"]');
|
|
81
|
+
logger_js_1.default.info(`Not Now button is ${JSON.stringify(notNowButton, null, 2)}`);
|
|
82
|
+
found = true;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
logger_js_1.default.info(`Not Now button not found, retrying ...`);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
if (found) {
|
|
89
|
+
yield driver.click(notNowButton.ELEMENT);
|
|
90
|
+
clicked = true;
|
|
91
|
+
}
|
|
92
|
+
attempt++;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
attempt = 0;
|
|
96
|
+
clicked = false;
|
|
97
|
+
found = false;
|
|
98
|
+
var checkBox;
|
|
99
|
+
while (attempt < MAX_RETRIES && !clicked) {
|
|
100
|
+
try {
|
|
101
|
+
checkBox = yield findElementWithWaitForCondition('xpath', '//android.widget.Image');
|
|
102
|
+
logger_js_1.default.info(`Check box is ${JSON.stringify(checkBox, null, 2)}`);
|
|
103
|
+
found = true;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
logger_js_1.default.info(`Check box not found, retrying the other xpath...`);
|
|
107
|
+
try {
|
|
108
|
+
checkBox = yield findElementWithWaitForCondition('xpath', '//android.widget.CheckBox[@text="Help improve Microsoft products by sending optional diagnostic data about how you use the browser, websites you visit, and crash reports."]');
|
|
109
|
+
logger_js_1.default.info(`Check box is ${JSON.stringify(checkBox, null, 2)}`);
|
|
110
|
+
found = true;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
logger_js_1.default.info(`Check box not found, retrying...`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
if (found) {
|
|
118
|
+
yield driver.click(checkBox.ELEMENT);
|
|
119
|
+
clicked = true;
|
|
120
|
+
}
|
|
121
|
+
attempt++;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
attempt = 0;
|
|
125
|
+
clicked = false;
|
|
126
|
+
found = false;
|
|
127
|
+
var confirmButton;
|
|
128
|
+
while (attempt < MAX_RETRIES && !clicked) {
|
|
129
|
+
try {
|
|
130
|
+
confirmButton = yield findElementWithWaitForCondition('xpath', '//android.widget.Button[@text="Confirm"]');
|
|
131
|
+
logger_js_1.default.info(`Confirm button is ${JSON.stringify(confirmButton, null, 2)}`);
|
|
132
|
+
found = true;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
logger_js_1.default.info(`Confirm button not found, retrying...`);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
if (found) {
|
|
139
|
+
yield driver.click(confirmButton.ELEMENT);
|
|
140
|
+
clicked = true;
|
|
141
|
+
}
|
|
142
|
+
attempt++;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
finally {
|
|
148
|
+
yield driver.deleteSession();
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
caps["appium:noReset"] = true;
|
|
152
|
+
yield driver.createSession(null, {
|
|
153
|
+
alwaysMatch: caps,
|
|
154
|
+
firstMatch: [{}],
|
|
155
|
+
});
|
|
156
|
+
const activity = yield driver.getCurrentActivity();
|
|
157
|
+
logger_js_1.default.info(`Activity is ${activity}`);
|
|
158
|
+
if (activity.includes('GrantPermissionsActivity')) {
|
|
159
|
+
// wait for the page to load
|
|
160
|
+
yield new Promise(resolve => setTimeout(resolve, 5000));
|
|
161
|
+
const MAX_RETRIES = 3;
|
|
162
|
+
let attempt = 0;
|
|
163
|
+
let clicked = false;
|
|
164
|
+
let found = false;
|
|
165
|
+
var denyButton;
|
|
166
|
+
while (attempt < MAX_RETRIES && !clicked) {
|
|
167
|
+
try {
|
|
168
|
+
denyButton = yield findElementWithWaitForCondition('id', 'com.android.permissioncontroller:id/permission_allow_button');
|
|
169
|
+
logger_js_1.default.info(`Deny button is ${JSON.stringify(denyButton, null, 2)}`);
|
|
170
|
+
found = true;
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
logger_js_1.default.info(`Deny button not found, retrying ...`);
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
if (found) {
|
|
177
|
+
yield driver.click(denyButton.ELEMENT);
|
|
178
|
+
clicked = true;
|
|
179
|
+
}
|
|
180
|
+
attempt++;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
yield driver.deleteSession();
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
191
|
+
yield skipWelcomeEdge();
|
|
192
|
+
process.exit(0);
|
|
193
|
+
}))();
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NjcmlwdHMvZWRnZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSwyRUFBdUU7QUFDdkUsMkNBQWlDO0FBQ2pDLGlFQUFtQztBQUNuQyx1Q0FBNEM7QUFFNUMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxJQUFJLEdBQUc7SUFDWCxHQUFHLEVBQUUsb0JBQW9CO0lBQ3pCLFFBQVEsRUFBRSx5QkFBeUI7Q0FDcEMsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFHO0lBQ2IsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyx1QkFBdUIsRUFBRSxrQkFBa0I7Q0FDNUMsQ0FBQztBQUVGLFNBQWUsZUFBZTs7UUFDNUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksc0RBQXlCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLHVCQUF1QixFQUFFLGNBQWM7WUFDdkMsbUJBQW1CLEVBQUUsZ0JBQWdCO1lBQ3JDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxHQUFHO1lBQzdCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3BDLENBQUM7UUFFRixNQUFNLCtCQUErQixHQUFHLG9DQUl0QyxFQUFFLHlFQUhGLFFBQVEsRUFDUixRQUFRLEVBQ1IsT0FBTyxHQUFHLElBQUk7WUFFZCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLElBQUEsMkJBQWdCLEVBQzNCLEdBQVMsRUFBRTtvQkFDVCxJQUFJLENBQUM7d0JBQ0gsbUJBQUcsQ0FBQyxJ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
|
|
@@ -0,0 +1,97 @@
|
|
|
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 samsung = {
|
|
22
|
+
pkg: 'com.sec.android.app.sbrowser',
|
|
23
|
+
activity: 'com.sec.android.app.sbrowser.SBrowserMainActivity',
|
|
24
|
+
};
|
|
25
|
+
const common = {
|
|
26
|
+
waitDuration: START_APP_WAIT_DURATION,
|
|
27
|
+
optionalIntentArguments: '-d www.appium.io',
|
|
28
|
+
};
|
|
29
|
+
function skipWelcomeSamsung() {
|
|
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', samsung.pkg]);
|
|
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": samsung.pkg,
|
|
39
|
+
"appium:appActivity": samsung.activity,
|
|
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('HelpIntroActivity')) {
|
|
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
|
+
const MAX_RETRIES = 2;
|
|
72
|
+
let attempt = 0;
|
|
73
|
+
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...`);
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
attempt++;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
yield driver.deleteSession();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
94
|
+
yield skipWelcomeSamsung();
|
|
95
|
+
process.exit(0);
|
|
96
|
+
}))();
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Ftc3VuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NjcmlwdHMvc2Ftc3VuZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSwyRUFBdUU7QUFDdkUsMkNBQWlDO0FBQ2pDLGlFQUFtQztBQUNuQyx1Q0FBNEM7QUFFNUMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxPQUFPLEdBQUc7SUFDZCxHQUFHLEVBQUUsOEJBQThCO0lBQ25DLFFBQVEsRUFBRSxtREFBbUQ7Q0FDOUQsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFHO0lBQ2IsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyx1QkFBdUIsRUFBRSxrQkFBa0I7Q0FDNUMsQ0FBQztBQUVGLFNBQWUsa0JBQWtCOztRQUMvQixNQUFNLEdBQUcsR0FBRyxNQUFNLGdCQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxzREFBeUIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHO1lBQ1gsWUFBWSxFQUFFLFNBQVM7WUFDdkIsdUJBQXVCLEVBQUUsY0FBYztZQUN2QyxtQkFBbUIsRUFBRSxnQkFBZ0I7WUFDckMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDdkMsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMs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
|
package/build/src/adb.js
CHANGED
|
@@ -27,6 +27,8 @@ const DEVTOOLS_SOCKET_MAP = {
|
|
|
27
27
|
brave: 'chrome_devtools_remote',
|
|
28
28
|
opera: 'com.opera.browser.devtools',
|
|
29
29
|
duckduckgo: 'webview_devtools_remote',
|
|
30
|
+
samsung: 'Terrace_devtools_remote',
|
|
31
|
+
edge: 'chrome_devtools_remote',
|
|
30
32
|
terrance: 'com.sec.android.app.sbrowser_devtools_remote',
|
|
31
33
|
};
|
|
32
34
|
function getAdb() {
|
|
@@ -119,6 +121,14 @@ function startApplication() {
|
|
|
119
121
|
pkg: 'com.duckduckgo.mobile.android',
|
|
120
122
|
activity: 'com.duckduckgo.app.browser.BrowserActivity',
|
|
121
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
|
+
};
|
|
122
132
|
if (browser === 'chrome') {
|
|
123
133
|
logger_1.default.info(`Starting Chrome`);
|
|
124
134
|
yield adb.startApp(Object.assign({}, chrome, common));
|
|
@@ -139,6 +149,14 @@ function startApplication() {
|
|
|
139
149
|
logger_1.default.info(`Starting DuckDuckGo`);
|
|
140
150
|
yield adb.startApp(Object.assign({}, duckduckgo, common));
|
|
141
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
|
+
}
|
|
142
160
|
});
|
|
143
161
|
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQWtCQSx3QkFRQztBQUVELHdDQXNCQztBQUVELDBCQW9CQztBQWNELDRDQThEQztBQXBKRCwyQ0FBb0Q7QUFDcEQsNkNBQXFDO0FBQ3JDLHdEQUErQjtBQUMvQixzREFBMkI7QUFFM0IsSUFBSSxHQUFHLENBQUM7QUFDUixNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQztBQUV0QyxNQUFNLG1CQUFtQixHQUFHO0lBQzFCLE1BQU0sRUFBRSx3QkFBd0I7SUFDaEMsS0FBSyxFQUFFLHdCQUF3QjtJQUMvQixLQUFLLEVBQUUsNEJBQTRCO0lBQ25DLFVBQVUsRUFBRSx5QkFBeUI7SUFDckMsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFFBQVEsRUFBRSw4Q0FBOEM7Q0FDekQsQ0FBQztBQUVGLFNBQXNCLE1BQU07O1FBQzFCLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxHQUFHLEdBQUcsTUFBTSxnQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7Q0FBQTtBQUVELFNBQXNCLGNBQWM7O1FBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUEsOEJBQWlCLEdBQUUsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FDVixtRkFBbUYsQ0FBQztRQUN0RixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUNiLGdGQUFnRixNQUFNLEVBQUUsQ0FDekYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJ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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.6",
|
|
9
9
|
"author": "",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"repository": {
|
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
"scripts": {
|
|
35
35
|
"skip-welcome-opera": "./build/scripts/opera.js",
|
|
36
36
|
"skip-welcome-brave": "./build/scripts/brave.js",
|
|
37
|
-
"skip-welcome-duckduckgo": "./build/scripts/duckduckgo.js"
|
|
37
|
+
"skip-welcome-duckduckgo": "./build/scripts/duckduckgo.js",
|
|
38
|
+
"skip-welcome-samsung": "./build/scripts/samsung.js",
|
|
39
|
+
"skip-welcome-edge": "./build/scripts/edge.js"
|
|
38
40
|
}
|
|
39
41
|
},
|
|
40
42
|
"scripts": {
|
package/src/adb.js
CHANGED
|
@@ -11,6 +11,8 @@ const DEVTOOLS_SOCKET_MAP = {
|
|
|
11
11
|
brave: 'chrome_devtools_remote',
|
|
12
12
|
opera: 'com.opera.browser.devtools',
|
|
13
13
|
duckduckgo: 'webview_devtools_remote',
|
|
14
|
+
samsung: 'Terrace_devtools_remote',
|
|
15
|
+
edge: 'chrome_devtools_remote',
|
|
14
16
|
terrance: 'com.sec.android.app.sbrowser_devtools_remote',
|
|
15
17
|
};
|
|
16
18
|
|
|
@@ -112,6 +114,16 @@ export async function startApplication(browser = 'chrome') {
|
|
|
112
114
|
activity: 'com.duckduckgo.app.browser.BrowserActivity',
|
|
113
115
|
};
|
|
114
116
|
|
|
117
|
+
const samsung = {
|
|
118
|
+
pkg: 'com.sec.android.app.sbrowser',
|
|
119
|
+
activity: 'com.sec.android.app.sbrowser.SBrowserMainActivity',
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const edge = {
|
|
123
|
+
pkg: 'com.microsoft.emmx',
|
|
124
|
+
activity: 'com.microsoft.ruby.Main',
|
|
125
|
+
};
|
|
126
|
+
|
|
115
127
|
if (browser === 'chrome') {
|
|
116
128
|
log.info(`Starting Chrome`);
|
|
117
129
|
await adb.startApp(Object.assign({}, chrome, common));
|
|
@@ -127,5 +139,11 @@ export async function startApplication(browser = 'chrome') {
|
|
|
127
139
|
} else if (browser === 'duckduckgo') {
|
|
128
140
|
log.info(`Starting DuckDuckGo`);
|
|
129
141
|
await adb.startApp(Object.assign({}, duckduckgo, common));
|
|
142
|
+
} else if (browser === 'samsung') {
|
|
143
|
+
log.info(`Starting Samsung Browser`);
|
|
144
|
+
await adb.startApp(Object.assign({}, samsung, common));
|
|
145
|
+
} else if (browser === 'edge') {
|
|
146
|
+
log.info(`Starting MS Edge`);
|
|
147
|
+
await adb.startApp(Object.assign({}, edge, common));
|
|
130
148
|
}
|
|
131
149
|
}
|