donobu 2.39.0 → 2.41.0
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/dist/assets/generated/version +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +9 -0
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/SmartSelector.d.ts +68 -0
- package/dist/esm/lib/SmartSelector.d.ts.map +1 -0
- package/dist/esm/lib/SmartSelector.js +51 -0
- package/dist/esm/lib/SmartSelector.js.map +1 -0
- package/dist/esm/lib/testExtension.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.js +7 -0
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts +5 -0
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +55 -7
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +1 -0
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +21 -11
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/models/ElementSelector.d.ts +1 -1
- package/dist/esm/models/ElementSelector.d.ts.map +1 -1
- package/dist/esm/models/ElementSelector.js +1 -0
- package/dist/esm/models/ElementSelector.js.map +1 -1
- package/dist/esm/tools/ChooseSelectOptionTool.d.ts +1 -1
- package/dist/esm/tools/InputRandomizedEmailAddressTool.d.ts +4 -4
- package/dist/esm/tools/InputRandomizedEmailAddressTool.d.ts.map +1 -1
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js +1 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js.map +1 -1
- package/dist/esm/tools/InputTextTool.d.ts +4 -4
- package/dist/esm/tools/InputTextTool.d.ts.map +1 -1
- package/dist/esm/tools/InputTextTool.js +1 -0
- package/dist/esm/tools/InputTextTool.js.map +1 -1
- package/dist/esm/tools/PressKeyTool.d.ts +1 -1
- package/dist/esm/tools/RememberPageTextTool.d.ts +1 -1
- package/dist/esm/tools/RememberPageTextTool.d.ts.map +1 -1
- package/dist/esm/tools/RememberPageTextTool.js +1 -1
- package/dist/esm/tools/RememberPageTextTool.js.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts +3 -6
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.js +7 -11
- package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
- package/dist/esm/tools/ScrollPageTool.d.ts +1 -1
- package/dist/esm/tools/SolveMfaChallenge.d.ts +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts +53 -0
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.js +333 -4
- package/dist/esm/utils/BrowserUtils.js.map +1 -1
- package/dist/lib/DonobuExtendedPage.d.ts +9 -0
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/SmartSelector.d.ts +68 -0
- package/dist/lib/SmartSelector.d.ts.map +1 -0
- package/dist/lib/SmartSelector.js +51 -0
- package/dist/lib/SmartSelector.js.map +1 -0
- package/dist/lib/testExtension.d.ts.map +1 -1
- package/dist/lib/testExtension.js +7 -0
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts +5 -0
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +55 -7
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +1 -0
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +21 -11
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/models/ElementSelector.d.ts +1 -1
- package/dist/models/ElementSelector.d.ts.map +1 -1
- package/dist/models/ElementSelector.js +1 -0
- package/dist/models/ElementSelector.js.map +1 -1
- package/dist/tools/ChooseSelectOptionTool.d.ts +1 -1
- package/dist/tools/InputRandomizedEmailAddressTool.d.ts +4 -4
- package/dist/tools/InputRandomizedEmailAddressTool.d.ts.map +1 -1
- package/dist/tools/InputRandomizedEmailAddressTool.js +1 -0
- package/dist/tools/InputRandomizedEmailAddressTool.js.map +1 -1
- package/dist/tools/InputTextTool.d.ts +4 -4
- package/dist/tools/InputTextTool.d.ts.map +1 -1
- package/dist/tools/InputTextTool.js +1 -0
- package/dist/tools/InputTextTool.js.map +1 -1
- package/dist/tools/PressKeyTool.d.ts +1 -1
- package/dist/tools/RememberPageTextTool.d.ts +1 -1
- package/dist/tools/RememberPageTextTool.d.ts.map +1 -1
- package/dist/tools/RememberPageTextTool.js +1 -1
- package/dist/tools/RememberPageTextTool.js.map +1 -1
- package/dist/tools/ReplayableInteraction.d.ts +3 -6
- package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/tools/ReplayableInteraction.js +7 -11
- package/dist/tools/ReplayableInteraction.js.map +1 -1
- package/dist/tools/ScrollPageTool.d.ts +1 -1
- package/dist/tools/SolveMfaChallenge.d.ts +1 -1
- package/dist/utils/BrowserUtils.d.ts +53 -0
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +333 -4
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ export type BROWSER_TYPE_NAME = 'firefox' | 'chromium' | 'chrome' | 'webkit' | '
|
|
|
12
12
|
* - BrowserBase cloud browser integration
|
|
13
13
|
* - Complete storage state management (cookies, localStorage, sessionStorage)
|
|
14
14
|
* - Proxy configuration and environment variable integration
|
|
15
|
+
* - Native Chrome installation support via CDP for "Desktop Chrome" device
|
|
15
16
|
*
|
|
16
17
|
* Supports multiple browser engines: Chromium, Chrome, Firefox, WebKit, and iOS Safari.
|
|
17
18
|
*
|
|
@@ -23,6 +24,12 @@ export type BROWSER_TYPE_NAME = 'firefox' | 'chromium' | 'chrome' | 'webkit' | '
|
|
|
23
24
|
* };
|
|
24
25
|
* const context = await BrowserUtils.create(config, './output');
|
|
25
26
|
*
|
|
27
|
+
* // Use native Chrome installation (special case)
|
|
28
|
+
* const chromeConfig: BrowserConfig = {
|
|
29
|
+
* using: { type: 'device', deviceName: 'Desktop Chrome' }
|
|
30
|
+
* };
|
|
31
|
+
* const chromeContext = await BrowserUtils.create(chromeConfig, './output');
|
|
32
|
+
*
|
|
26
33
|
* // Get supported devices
|
|
27
34
|
* const devices = BrowserUtils.getSupportedDevices();
|
|
28
35
|
*
|
|
@@ -36,6 +43,7 @@ export type BROWSER_TYPE_NAME = 'firefox' | 'chromium' | 'chrome' | 'webkit' | '
|
|
|
36
43
|
*/
|
|
37
44
|
export declare class BrowserUtils {
|
|
38
45
|
private static readonly DEFAULT_DEVICE_NAME;
|
|
46
|
+
private static readonly DESKTOP_CHROME_DEVICE_NAME;
|
|
39
47
|
/**
|
|
40
48
|
* Loads all the pre-canned browser device configurations from the local
|
|
41
49
|
* filesystem.
|
|
@@ -52,6 +60,9 @@ export declare class BrowserUtils {
|
|
|
52
60
|
* Creates a browser context based on the provided configuration.
|
|
53
61
|
* Supports different browser types including device emulation, remote instances, and BrowserBase.
|
|
54
62
|
*
|
|
63
|
+
* Special case: When deviceName is "Desktop Chrome", launches the user's native Chrome
|
|
64
|
+
* installation and connects via CDP instead of using Playwright's bundled browser.
|
|
65
|
+
*
|
|
55
66
|
* @param browserConfig - Configuration object specifying browser type and settings.
|
|
56
67
|
* @param videoDir - If present, record video and store the artifacts in this directory.
|
|
57
68
|
* @param storageState - Optional browser storage state to restore (cookies, localStorage, sessionStorage).
|
|
@@ -66,6 +77,48 @@ export declare class BrowserUtils {
|
|
|
66
77
|
* @returns A promise that resolves to the complete browser storage state
|
|
67
78
|
*/
|
|
68
79
|
static getBrowserStorageState(browserContext: BrowserContext): Promise<BrowserStorageState>;
|
|
80
|
+
/**
|
|
81
|
+
* Launches the user's native Chrome installation and connects to it via CDP.
|
|
82
|
+
* This provides access to the user's real Chrome profile, extensions, and settings.
|
|
83
|
+
*
|
|
84
|
+
* @param headless - Whether to run Chrome in headless mode
|
|
85
|
+
* @param storageState - Optional browser storage state to restore
|
|
86
|
+
* @param proxy - Optional proxy configuration for the browser
|
|
87
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
88
|
+
* @throws {Error} When Chrome cannot be launched or CDP connection fails
|
|
89
|
+
*/
|
|
90
|
+
private static forNativeChrome;
|
|
91
|
+
/**
|
|
92
|
+
* Launches the native Chrome browser with the specified arguments.
|
|
93
|
+
* Attempts to find Chrome in common installation locations across different platforms.
|
|
94
|
+
*
|
|
95
|
+
* @param args - Command line arguments to pass to Chrome
|
|
96
|
+
* @returns The spawned Chrome process
|
|
97
|
+
* @throws {Error} When Chrome executable cannot be found or launched
|
|
98
|
+
*/
|
|
99
|
+
private static launchNativeChrome;
|
|
100
|
+
/**
|
|
101
|
+
* Returns an array of possible Chrome executable paths for the current platform.
|
|
102
|
+
*
|
|
103
|
+
* @returns Array of potential Chrome executable paths
|
|
104
|
+
*/
|
|
105
|
+
private static getChromePaths;
|
|
106
|
+
/**
|
|
107
|
+
* Finds an available port starting from the given port number.
|
|
108
|
+
*
|
|
109
|
+
* @param startPort - The port number to start checking from
|
|
110
|
+
* @returns Promise that resolves to an available port number
|
|
111
|
+
*/
|
|
112
|
+
private static findAvailablePort;
|
|
113
|
+
/**
|
|
114
|
+
* Waits for Chrome's CDP endpoint to become available.
|
|
115
|
+
*
|
|
116
|
+
* @param cdpUrl - The CDP endpoint URL to wait for
|
|
117
|
+
* @param maxAttempts - Maximum number of connection attempts
|
|
118
|
+
* @param delayMs - Delay between attempts in milliseconds
|
|
119
|
+
* @throws {Error} When CDP endpoint doesn't become available within the timeout
|
|
120
|
+
*/
|
|
121
|
+
private static waitForCDP;
|
|
69
122
|
/**
|
|
70
123
|
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given URL.
|
|
71
124
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"BrowserUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAUhF,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAoB;IAEtE;;;;;;;;;;OAUG;WACW,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAY/D;;;;;;;;;;;;OAYG;WACiB,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,cAAc,CAAC;IAoG1B;;;;;OAKG;WACiB,sBAAsB,CACxC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAkF/B;;;;;;;;;OASG;mBACkB,eAAe;IAuKpC;;;;;;;OAOG;mBACkB,kBAAkB;IAyDvC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAiC7B;;;;;OAKG;mBACkB,iBAAiB;IA8BtC;;;;;;;OAOG;mBACkB,UAAU;IAuC/B;;;;;;;;OAQG;mBACkB,gBAAgB;IAiCrC;;;;;;;;;;;;OAYG;mBACkB,SAAS;IA8B9B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IAgD7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAyBvC;;;;;;;;;OASG;mBACkB,UAAU;IAqC/B;;;;;;;;;;;;;OAaG;mBACkB,cAAc;IA2BnC;;;;;;;;OAQG;mBACkB,2BAA2B;IAkChD;;;;;;OAMG;WACiB,oCAAoC,CACtD,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,mBAAmB,GACjC,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAgB1B"}
|
|
@@ -10,6 +10,11 @@ const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueExc
|
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const envVars_1 = require("../envVars");
|
|
12
12
|
const Logger_1 = require("./Logger");
|
|
13
|
+
const child_process_1 = require("child_process");
|
|
14
|
+
const util_1 = require("util");
|
|
15
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
16
|
+
const os_1 = __importDefault(require("os"));
|
|
17
|
+
const sleep = (0, util_1.promisify)(setTimeout);
|
|
13
18
|
/**
|
|
14
19
|
* Utility class for managing browser instances and contexts across different browser types and configurations.
|
|
15
20
|
*
|
|
@@ -19,6 +24,7 @@ const Logger_1 = require("./Logger");
|
|
|
19
24
|
* - BrowserBase cloud browser integration
|
|
20
25
|
* - Complete storage state management (cookies, localStorage, sessionStorage)
|
|
21
26
|
* - Proxy configuration and environment variable integration
|
|
27
|
+
* - Native Chrome installation support via CDP for "Desktop Chrome" device
|
|
22
28
|
*
|
|
23
29
|
* Supports multiple browser engines: Chromium, Chrome, Firefox, WebKit, and iOS Safari.
|
|
24
30
|
*
|
|
@@ -30,6 +36,12 @@ const Logger_1 = require("./Logger");
|
|
|
30
36
|
* };
|
|
31
37
|
* const context = await BrowserUtils.create(config, './output');
|
|
32
38
|
*
|
|
39
|
+
* // Use native Chrome installation (special case)
|
|
40
|
+
* const chromeConfig: BrowserConfig = {
|
|
41
|
+
* using: { type: 'device', deviceName: 'Desktop Chrome' }
|
|
42
|
+
* };
|
|
43
|
+
* const chromeContext = await BrowserUtils.create(chromeConfig, './output');
|
|
44
|
+
*
|
|
33
45
|
* // Get supported devices
|
|
34
46
|
* const devices = BrowserUtils.getSupportedDevices();
|
|
35
47
|
*
|
|
@@ -64,6 +76,9 @@ class BrowserUtils {
|
|
|
64
76
|
* Creates a browser context based on the provided configuration.
|
|
65
77
|
* Supports different browser types including device emulation, remote instances, and BrowserBase.
|
|
66
78
|
*
|
|
79
|
+
* Special case: When deviceName is "Desktop Chrome", launches the user's native Chrome
|
|
80
|
+
* installation and connects via CDP instead of using Playwright's bundled browser.
|
|
81
|
+
*
|
|
67
82
|
* @param browserConfig - Configuration object specifying browser type and settings.
|
|
68
83
|
* @param videoDir - If present, record video and store the artifacts in this directory.
|
|
69
84
|
* @param storageState - Optional browser storage state to restore (cookies, localStorage, sessionStorage).
|
|
@@ -76,7 +91,14 @@ class BrowserUtils {
|
|
|
76
91
|
let browserContext;
|
|
77
92
|
switch (type) {
|
|
78
93
|
case 'device': {
|
|
79
|
-
|
|
94
|
+
const deviceName = browserConfig.using.deviceName ?? BrowserUtils.DEFAULT_DEVICE_NAME;
|
|
95
|
+
// Special case for Desktop Chrome - use native Chrome installation via CDP
|
|
96
|
+
if (deviceName === BrowserUtils.DESKTOP_CHROME_DEVICE_NAME) {
|
|
97
|
+
({ browser, browserContext } = await BrowserUtils.forNativeChrome(browserConfig.using.headless ?? false, storageState, browserConfig.using.proxy));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
({ browser, browserContext } = await BrowserUtils.forDevice(deviceName, browserConfig.using.headless ?? false, videoDir, storageState, browserConfig.using.proxy));
|
|
101
|
+
}
|
|
80
102
|
BrowserUtils.patchClose(browserContext, () => browser.close());
|
|
81
103
|
break;
|
|
82
104
|
}
|
|
@@ -153,13 +175,14 @@ class BrowserUtils {
|
|
|
153
175
|
const pages = browserContext.pages();
|
|
154
176
|
// Process each page to collect sessionStorage data
|
|
155
177
|
for (const page of pages) {
|
|
178
|
+
const pageUrl = page.url();
|
|
156
179
|
try {
|
|
157
|
-
if (
|
|
180
|
+
if (pageUrl.length === 0 || pageUrl.startsWith('about:')) {
|
|
158
181
|
// Skip pages that might have navigation errors or are about:blank.
|
|
159
182
|
continue;
|
|
160
183
|
}
|
|
161
184
|
// Get the origin for the current page
|
|
162
|
-
const pageOrigin = new URL(
|
|
185
|
+
const pageOrigin = new URL(pageUrl).origin;
|
|
163
186
|
// Find if we already have an entry for this origin
|
|
164
187
|
let originEntry = result.origins.find((entry) => entry.origin === pageOrigin);
|
|
165
188
|
// If not, create a new entry
|
|
@@ -193,12 +216,317 @@ class BrowserUtils {
|
|
|
193
216
|
originEntry.sessionStorage = sessionStorageItems;
|
|
194
217
|
}
|
|
195
218
|
catch (error) {
|
|
196
|
-
Logger_1.appLogger.warn(`Failed to extract sessionStorage for page: ${
|
|
219
|
+
Logger_1.appLogger.warn(`Failed to extract sessionStorage for page: ${pageUrl}`, error);
|
|
197
220
|
continue;
|
|
198
221
|
}
|
|
199
222
|
}
|
|
200
223
|
return result;
|
|
201
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Launches the user's native Chrome installation and connects to it via CDP.
|
|
227
|
+
* This provides access to the user's real Chrome profile, extensions, and settings.
|
|
228
|
+
*
|
|
229
|
+
* @param headless - Whether to run Chrome in headless mode
|
|
230
|
+
* @param storageState - Optional browser storage state to restore
|
|
231
|
+
* @param proxy - Optional proxy configuration for the browser
|
|
232
|
+
* @returns A promise that resolves to an object containing the browser and browser context
|
|
233
|
+
* @throws {Error} When Chrome cannot be launched or CDP connection fails
|
|
234
|
+
*/
|
|
235
|
+
static async forNativeChrome(headless, storageState, proxy) {
|
|
236
|
+
// Always use a dedicated user-data-dir to avoid handing off to an existing Chrome.
|
|
237
|
+
const userDataDir = await promises_1.default.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'donobu-chrome-'));
|
|
238
|
+
// Chrome will choose a free port and write it into DevToolsActivePort in userDataDir.
|
|
239
|
+
const chromeArgs = [
|
|
240
|
+
`--user-data-dir=${userDataDir}`,
|
|
241
|
+
'--remote-debugging-port=0',
|
|
242
|
+
'--disable-field-trial-config',
|
|
243
|
+
'--disable-background-networking',
|
|
244
|
+
'--disable-background-timer-throttling',
|
|
245
|
+
'--disable-backgrounding-occluded-windows',
|
|
246
|
+
'--disable-back-forward-cache',
|
|
247
|
+
'--disable-breakpad',
|
|
248
|
+
'--disable-client-side-phishing-detection',
|
|
249
|
+
'--disable-component-extensions-with-background-pages',
|
|
250
|
+
'--disable-component-update',
|
|
251
|
+
'--no-default-browser-check',
|
|
252
|
+
'--disable-default-apps',
|
|
253
|
+
'--disable-dev-shm-usage',
|
|
254
|
+
'--disable-features=AcceptCHFrame,AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,AutomationControlled',
|
|
255
|
+
'--enable-features=CDPScreenshotNewSurface',
|
|
256
|
+
'--allow-pre-commit-input',
|
|
257
|
+
'--disable-hang-monitor',
|
|
258
|
+
'--disable-ipc-flooding-protection',
|
|
259
|
+
'--disable-popup-blocking',
|
|
260
|
+
'--disable-prompt-on-repost',
|
|
261
|
+
'--disable-renderer-backgrounding',
|
|
262
|
+
'--force-color-profile=srgb',
|
|
263
|
+
'--metrics-recording-only',
|
|
264
|
+
'--no-first-run',
|
|
265
|
+
'--password-store=basic',
|
|
266
|
+
'--use-mock-keychain',
|
|
267
|
+
'--no-service-autorun',
|
|
268
|
+
'--export-tagged-pdf',
|
|
269
|
+
'--disable-search-engine-choice-screen',
|
|
270
|
+
'--unsafely-disable-devtools-self-xss-warnings',
|
|
271
|
+
'--edge-skip-compat-layer-relaunch',
|
|
272
|
+
'--enable-unsafe-swiftshader',
|
|
273
|
+
'about:blank',
|
|
274
|
+
];
|
|
275
|
+
if (headless) {
|
|
276
|
+
chromeArgs.push('--headless=new');
|
|
277
|
+
}
|
|
278
|
+
const expandedProxy = BrowserUtils.expandProxyConfiguration(proxy);
|
|
279
|
+
if (expandedProxy) {
|
|
280
|
+
chromeArgs.push(`--proxy-server=${expandedProxy.server}`);
|
|
281
|
+
if (expandedProxy.bypass) {
|
|
282
|
+
chromeArgs.push(`--proxy-bypass-list=${expandedProxy.bypass}`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
Logger_1.appLogger.info(`Launching Chrome with args: ${chromeArgs.join(' ')}`);
|
|
286
|
+
const chromeProcess = await BrowserUtils.launchNativeChrome(chromeArgs);
|
|
287
|
+
// Helper: read DevToolsActivePort written by Chrome when --remote-debugging-port=0 is used
|
|
288
|
+
const readDevToolsPort = async (maxAttempts = 200, delayMs = 100) => {
|
|
289
|
+
const file = path_1.default.join(userDataDir, 'DevToolsActivePort');
|
|
290
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
291
|
+
try {
|
|
292
|
+
const contents = (await promises_1.default.readFile(file, 'utf8')).trim().split('\n');
|
|
293
|
+
// Format: first line is the port, second is the WebSocket path.
|
|
294
|
+
const port = Number(contents[0]);
|
|
295
|
+
if (!Number.isNaN(port)) {
|
|
296
|
+
return port;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
/* file not ready yet */
|
|
301
|
+
}
|
|
302
|
+
await sleep(delayMs);
|
|
303
|
+
}
|
|
304
|
+
throw new Error('DevToolsActivePort not found; Chrome did not expose CDP');
|
|
305
|
+
};
|
|
306
|
+
let browser;
|
|
307
|
+
try {
|
|
308
|
+
const port = await readDevToolsPort();
|
|
309
|
+
const cdpUrl = `http://localhost:${port}`;
|
|
310
|
+
Logger_1.appLogger.info(`Connecting to Chrome CDP at: ${cdpUrl}`);
|
|
311
|
+
browser = await playwright_1.chromium.connectOverCDP(cdpUrl);
|
|
312
|
+
// IMPORTANT: Reuse the default (already-open) non-incognito context.
|
|
313
|
+
// Calling browser.newContext() would create an incognito context -> extra window.
|
|
314
|
+
const existingContexts = browser.contexts();
|
|
315
|
+
if (existingContexts.length === 0) {
|
|
316
|
+
throw new Error('No default Chrome context found after CDP connect');
|
|
317
|
+
}
|
|
318
|
+
const browserContext = existingContexts[0];
|
|
319
|
+
// Apply storage state (cookies) if provided.
|
|
320
|
+
if (storageState?.cookies?.length) {
|
|
321
|
+
try {
|
|
322
|
+
await browserContext.addCookies(storageState.cookies);
|
|
323
|
+
}
|
|
324
|
+
catch (e) {
|
|
325
|
+
Logger_1.appLogger.warn('Failed to add cookies to existing Chrome context', e);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// (sessionStorage/localStorage restoration happens via attachSessionStorageToBrowserContext later)
|
|
329
|
+
// Patch close: close Playwright connection, then Chrome, then remove temp profile.
|
|
330
|
+
const originalClose = browser.close.bind(browser);
|
|
331
|
+
browser.close = async () => {
|
|
332
|
+
try {
|
|
333
|
+
await originalClose();
|
|
334
|
+
}
|
|
335
|
+
catch (e) {
|
|
336
|
+
Logger_1.appLogger.warn('Error closing browser connection', e);
|
|
337
|
+
}
|
|
338
|
+
try {
|
|
339
|
+
if (!chromeProcess.killed) {
|
|
340
|
+
chromeProcess.kill('SIGTERM');
|
|
341
|
+
await sleep(1000);
|
|
342
|
+
if (!chromeProcess.killed) {
|
|
343
|
+
chromeProcess.kill('SIGKILL');
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
catch (e) {
|
|
348
|
+
Logger_1.appLogger.warn('Error terminating Chrome process', e);
|
|
349
|
+
}
|
|
350
|
+
try {
|
|
351
|
+
await promises_1.default.rm(userDataDir, { recursive: true, force: true });
|
|
352
|
+
}
|
|
353
|
+
catch (e) {
|
|
354
|
+
Logger_1.appLogger.warn('Error removing temp userDataDir', e);
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
return { browser, browserContext };
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
try {
|
|
361
|
+
if (browser) {
|
|
362
|
+
await browser.close();
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
catch { }
|
|
366
|
+
try {
|
|
367
|
+
if (!chromeProcess.killed) {
|
|
368
|
+
chromeProcess.kill('SIGKILL');
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
catch { }
|
|
372
|
+
throw new Error(`Failed to connect to native Chrome: ${error.message}`);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Launches the native Chrome browser with the specified arguments.
|
|
377
|
+
* Attempts to find Chrome in common installation locations across different platforms.
|
|
378
|
+
*
|
|
379
|
+
* @param args - Command line arguments to pass to Chrome
|
|
380
|
+
* @returns The spawned Chrome process
|
|
381
|
+
* @throws {Error} When Chrome executable cannot be found or launched
|
|
382
|
+
*/
|
|
383
|
+
static async launchNativeChrome(args) {
|
|
384
|
+
const chromePaths = BrowserUtils.getChromePaths();
|
|
385
|
+
for (const chromePath of chromePaths) {
|
|
386
|
+
try {
|
|
387
|
+
Logger_1.appLogger.info(`Attempting to launch Chrome from: ${chromePath}`);
|
|
388
|
+
const process = (0, child_process_1.spawn)(chromePath, args, {
|
|
389
|
+
detached: false,
|
|
390
|
+
stdio: ['ignore', 'pipe', 'pipe'], // Capture stdout and stderr
|
|
391
|
+
});
|
|
392
|
+
// Set up error handling for the process
|
|
393
|
+
process.on('error', (error) => {
|
|
394
|
+
Logger_1.appLogger.error(`Chrome process error: ${error.message}`);
|
|
395
|
+
});
|
|
396
|
+
process.stdout?.on('data', (data) => {
|
|
397
|
+
Logger_1.appLogger.debug(`Chrome stdout: ${data.toString()}`);
|
|
398
|
+
});
|
|
399
|
+
process.stderr?.on('data', (data) => {
|
|
400
|
+
const message = data.toString();
|
|
401
|
+
// Don't log as error if it's just informational Chrome output
|
|
402
|
+
if (message.includes('DevTools listening on')) {
|
|
403
|
+
Logger_1.appLogger.info(`Chrome: ${message.trim()}`);
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
Logger_1.appLogger.debug(`Chrome stderr: ${message}`);
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
// Wait a bit to see if the process starts successfully
|
|
410
|
+
await sleep(1000); // Increased wait time
|
|
411
|
+
if (!process.killed && process.pid) {
|
|
412
|
+
Logger_1.appLogger.info(`Launched Chrome from: ${chromePath} (PID: ${process.pid})`);
|
|
413
|
+
return process;
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
Logger_1.appLogger.warn(`Chrome process died immediately for path: ${chromePath}`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
Logger_1.appLogger.debug(`Failed to launch Chrome from ${chromePath}:`, error);
|
|
421
|
+
continue;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
throw new Error('Could not find or launch Chrome. Please ensure Chrome is installed.');
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Returns an array of possible Chrome executable paths for the current platform.
|
|
428
|
+
*
|
|
429
|
+
* @returns Array of potential Chrome executable paths
|
|
430
|
+
*/
|
|
431
|
+
static getChromePaths() {
|
|
432
|
+
const platform = process.platform;
|
|
433
|
+
switch (platform) {
|
|
434
|
+
case 'win32':
|
|
435
|
+
return [
|
|
436
|
+
'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
|
|
437
|
+
'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
|
|
438
|
+
process.env.LOCALAPPDATA +
|
|
439
|
+
'\\Google\\Chrome\\Application\\chrome.exe',
|
|
440
|
+
].filter(Boolean);
|
|
441
|
+
case 'darwin':
|
|
442
|
+
return [
|
|
443
|
+
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
|
444
|
+
'/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
|
|
445
|
+
'/usr/bin/google-chrome',
|
|
446
|
+
];
|
|
447
|
+
case 'linux':
|
|
448
|
+
return [
|
|
449
|
+
'/usr/bin/google-chrome',
|
|
450
|
+
'/usr/bin/google-chrome-stable',
|
|
451
|
+
'/usr/bin/chromium-browser',
|
|
452
|
+
'/usr/bin/chromium',
|
|
453
|
+
'/snap/bin/chromium',
|
|
454
|
+
];
|
|
455
|
+
default:
|
|
456
|
+
return ['/usr/bin/google-chrome', '/usr/bin/chromium'];
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Finds an available port starting from the given port number.
|
|
461
|
+
*
|
|
462
|
+
* @param startPort - The port number to start checking from
|
|
463
|
+
* @returns Promise that resolves to an available port number
|
|
464
|
+
*/
|
|
465
|
+
static async findAvailablePort(startPort) {
|
|
466
|
+
const net = require('net');
|
|
467
|
+
return new Promise((resolve, reject) => {
|
|
468
|
+
const server = net.createServer();
|
|
469
|
+
server.listen(startPort, () => {
|
|
470
|
+
const port = server.address()?.port;
|
|
471
|
+
server.close(() => {
|
|
472
|
+
if (port) {
|
|
473
|
+
resolve(port);
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
reject(new Error('Could not determine port'));
|
|
477
|
+
}
|
|
478
|
+
});
|
|
479
|
+
});
|
|
480
|
+
server.on('error', (err) => {
|
|
481
|
+
if (err.code === 'EADDRINUSE') {
|
|
482
|
+
// Port is in use, try the next one
|
|
483
|
+
BrowserUtils.findAvailablePort(startPort + 1)
|
|
484
|
+
.then(resolve)
|
|
485
|
+
.catch(reject);
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
reject(err);
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Waits for Chrome's CDP endpoint to become available.
|
|
495
|
+
*
|
|
496
|
+
* @param cdpUrl - The CDP endpoint URL to wait for
|
|
497
|
+
* @param maxAttempts - Maximum number of connection attempts
|
|
498
|
+
* @param delayMs - Delay between attempts in milliseconds
|
|
499
|
+
* @throws {Error} When CDP endpoint doesn't become available within the timeout
|
|
500
|
+
*/
|
|
501
|
+
static async waitForCDP(cdpUrl, maxAttempts = 60, // Increased from 30
|
|
502
|
+
delayMs = 500) {
|
|
503
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
504
|
+
try {
|
|
505
|
+
Logger_1.appLogger.debug(`CDP connection attempt ${attempt}/${maxAttempts}`);
|
|
506
|
+
const response = await fetch(`${cdpUrl}/json/version`, {
|
|
507
|
+
signal: AbortSignal.timeout(2000), // 2 second timeout per attempt
|
|
508
|
+
});
|
|
509
|
+
if (response.ok) {
|
|
510
|
+
const data = await response.json();
|
|
511
|
+
Logger_1.appLogger.info(`CDP endpoint ready. Browser: ${data.Browser}, WebKit: ${data['WebKit-Version']}`);
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
Logger_1.appLogger.debug(`CDP endpoint returned status: ${response.status}`);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
catch (error) {
|
|
519
|
+
if (attempt % 10 === 0) {
|
|
520
|
+
// Log every 10 attempts to avoid spam
|
|
521
|
+
Logger_1.appLogger.debug(`CDP not ready yet (attempt ${attempt}): ${error.message}`);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
if (attempt === maxAttempts) {
|
|
525
|
+
throw new Error(`Chrome CDP endpoint not available after ${maxAttempts} attempts (${(maxAttempts * delayMs) / 1000}s)`);
|
|
526
|
+
}
|
|
527
|
+
await sleep(delayMs);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
202
530
|
/**
|
|
203
531
|
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given URL.
|
|
204
532
|
*
|
|
@@ -486,4 +814,5 @@ class BrowserUtils {
|
|
|
486
814
|
}
|
|
487
815
|
exports.BrowserUtils = BrowserUtils;
|
|
488
816
|
BrowserUtils.DEFAULT_DEVICE_NAME = 'Desktop Chromium';
|
|
817
|
+
BrowserUtils.DESKTOP_CHROME_DEVICE_NAME = 'Desktop Chrome';
|
|
489
818
|
//# sourceMappingURL=BrowserUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserUtils.js","sourceRoot":"","sources":["../../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrowserUtils.js","sourceRoot":"","sources":["../../../src/utils/BrowserUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { ScrollPageNonGptSchema } from '../tools/ScrollPageTool';
|
|
|
14
14
|
import { SelectorBasedSchema } from '../tools/ReplayableInteraction';
|
|
15
15
|
import { z } from 'zod/v4';
|
|
16
16
|
import { BrowserStorageState } from '../models/BrowserStorageState';
|
|
17
|
+
import { SmartSelector } from './SmartSelector';
|
|
17
18
|
/**
|
|
18
19
|
* Extends the Page object with additional test-related methods.
|
|
19
20
|
*/
|
|
@@ -72,6 +73,14 @@ export interface DonobuExtendedPage extends Page {
|
|
|
72
73
|
instruction?: string;
|
|
73
74
|
schema: z.ZodSchema<T>;
|
|
74
75
|
}, gptClientOverride?: GptClient | LanguageModel): Promise<T>;
|
|
76
|
+
/**
|
|
77
|
+
* Builds a smart selector object that will automatically failover when performing
|
|
78
|
+
* actions.
|
|
79
|
+
*/
|
|
80
|
+
find(selector: string, options?: {
|
|
81
|
+
failover?: string[];
|
|
82
|
+
frame?: string;
|
|
83
|
+
}): SmartSelector;
|
|
75
84
|
/**
|
|
76
85
|
* Hover the mouse over a specified element on a webpage.
|
|
77
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,uCAAuC,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"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"}
|