appium-cdp-driver 1.0.5 → 1.0.7

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.
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AppiumCDPDriver = void 0;
16
- const base_driver_1 = require("@appium/base-driver");
17
- const adb_1 = require("./adb");
18
- const taiko_1 = require("taiko");
19
- const commands_1 = __importDefault(require("./commands"));
20
- const logger_1 = __importDefault(require("./logger"));
21
- const node_fetch_1 = __importDefault(require("node-fetch"));
22
- const async_retry_1 = __importDefault(require("async-retry"));
23
- process.env.LOCAL_PROTOCOL = true;
24
- class AppiumCDPDriver extends base_driver_1.BaseDriver {
25
- constructor(args) {
26
- super(args);
27
- this.locatorStrategies = ['xpath', 'id'];
28
- this.desiredCapConstraints = {
29
- automationName: {
30
- presence: true,
31
- isString: true,
32
- },
33
- browserName: {
34
- presence: true,
35
- isString: true,
36
- },
37
- };
38
- }
39
- createSession(jwpCaps, reqCaps, w3cCaps, otherDriverData) {
40
- const _super = Object.create(null, {
41
- createSession: { get: () => super.createSession }
42
- });
43
- return __awaiter(this, void 0, void 0, function* () {
44
- console.log(yield (0, taiko_1.getConfig)('local'));
45
- const res = yield _super.createSession.call(this, w3cCaps);
46
- const browser = w3cCaps.alwaysMatch['browserName'];
47
- yield (0, adb_1.getAdb)();
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
- }
57
- logger_1.default.info('Browser opened');
58
- // Wait a bit longer for Opera to initialize its CDP interface
59
- yield new Promise((resolve) => setTimeout(resolve, 3000));
60
- const data = yield (0, async_retry_1.default)((bail) => __awaiter(this, void 0, void 0, function* () {
61
- try {
62
- logger_1.default.info(`Attempting to connect to CDP at http://localhost:${port}/json/list`);
63
- const res = yield (0, node_fetch_1.default)(`http://localhost:${port}/json/list`);
64
- if (!res.ok) {
65
- throw new Error(`HTTP ${res.status}: ${res.statusText}`);
66
- }
67
- const data = yield res.json();
68
- logger_1.default.info(`CDP response: ${JSON.stringify(data)}`);
69
- if (!Array.isArray(data) || data.length === 0) {
70
- throw new Error('Debug list is empty or invalid');
71
- }
72
- return data;
73
- }
74
- catch (error) {
75
- logger_1.default.error(`CDP connection attempt failed: ${error.message}`);
76
- throw error;
77
- }
78
- }), {
79
- retries: 10,
80
- factor: 2,
81
- minTimeout: 2000,
82
- maxTimeout: 10000,
83
- });
84
- const target = data.find((target) => {
85
- return target.url.includes('appium.io');
86
- });
87
- logger_1.default.info(`Target found: ${target.webSocketDebuggerUrl}`);
88
- yield (0, taiko_1.openBrowser)({
89
- port: port,
90
- host: '127.0.0.1',
91
- target: target.webSocketDebuggerUrl,
92
- });
93
- return res;
94
- });
95
- }
96
- deleteSession() {
97
- const _super = Object.create(null, {
98
- deleteSession: { get: () => super.deleteSession }
99
- });
100
- return __awaiter(this, void 0, void 0, function* () {
101
- yield _super.deleteSession.call(this);
102
- });
103
- }
104
- }
105
- exports.AppiumCDPDriver = AppiumCDPDriver;
106
- Object.assign(AppiumCDPDriver.prototype, commands_1.default);
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsK0JBQTBEO0FBQzFELGlDQUFxRDtBQUNyRCwwREFBa0M7QUFDbEMsc0RBQTJCO0FBQzNCLDREQUErQjtBQUMvQiw4REFBZ0M7QUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sZUFBZ0IsU0FBUSx3QkFBVTtJQUN0QyxZQUFZLElBQUk7UUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHO1lBQzNCLGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlOzs7OztZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQSxpQkFBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFNLGFBQWEsWUFBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBQSxZQUFNLEdBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDO1lBQ1QsSUFBSSxPQUFPLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBQSxzQkFB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
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- const CDP = require("chrome-remote-interface");
12
- const { openBrowser, goto, closeBrowser } = require("taiko");
13
- const fetch = require("node-fetch");
14
- function example() {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- let client;
17
- try {
18
- // connect to endpoint
19
- // client = await CDP({
20
- // host: "127.0.0.1",
21
- // port: 9241,
22
- // local: true,
23
- // target: "ws://localhost:9241/devtools/page/1516",
24
- // });
25
- // await openBrowser({
26
- // host: "127.0.0.1",
27
- // port: 9241,
28
- // target: "ws://localhost:9241/devtools/page/1515",
29
- // });
30
- // await goto('github.com');
31
- // await closeBrowser();
32
- // extract domains
33
- const targets = yield fetch(`http://localhost:9241/json/list`);
34
- const data = yield targets.json();
35
- const target = data.find((target) => {
36
- return target.url === "http://appium.io/";
37
- });
38
- console.log(target);
39
- }
40
- catch (err) {
41
- console.error(err);
42
- }
43
- finally {
44
- if (client) {
45
- yield client.close();
46
- }
47
- }
48
- });
49
- }
50
- example();
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQy9DLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDcEMsU0FBZSxPQUFPOztRQUNwQixJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksQ0FBQztZQUNILHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsc0RBQXNEO1lBQ3RELE1BQU07WUFDTixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQixzREFBc0Q7WUFDdEQsTUFBTTtZQUNOLDRCQUE0QjtZQUM1Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBRWxCLE1BQU0sT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNsQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEtBQUssbUJBQW1CLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUFBO0FBRUQsT0FBTyxFQUFFLENBQUMifQ==
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const support_1 = require("@appium/support");
4
- const log = support_1.logger.getLogger("CDPDriver");
5
- exports.default = log;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUF5QztBQUV6QyxNQUFNLEdBQUcsR0FBRyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUUxQyxrQkFBZSxHQUFHLENBQUMifQ==