Skip to content

Commit 7e4be30

Browse files
committed
Fixed closing the browser by the number of pages and added to the Chrome.kill() shutdown function.
1 parent 837bbb1 commit 7e4be30

File tree

6 files changed

+17
-14
lines changed

6 files changed

+17
-14
lines changed

lib/cjs/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ async function connect({ args = [], headless = false, customConfig = {}, proxy =
6161

6262
let pageControllerConfig = { browser, page, proxy, turnstile, xvfbsession, pid: chrome.pid, plugins }
6363

64-
page = await pageController(pageControllerConfig);
64+
page = await pageController({ ...pageControllerConfig, killProcess: true, chrome });
6565

6666
browser.on('targetcreated', async target => {
6767
if (target.type() === 'page') {

lib/cjs/module/pageController.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function getRandomInt(min, max) {
88
return Math.floor(Math.random() * (max - min + 1)) + min;
99
}
1010

11-
async function pageController({ browser, page, proxy, turnstile, xvfbsession, pid, plugins }) {
11+
async function pageController({ browser, page, proxy, turnstile, xvfbsession, pid, plugins, killProcess = false, chrome }) {
1212

1313
if (plugins.length > 0) {
1414
for (const plugin of plugins) {
@@ -25,8 +25,11 @@ async function pageController({ browser, page, proxy, turnstile, xvfbsession, pi
2525

2626
browser.on('disconnected', async () => {
2727
solveStatus = false
28-
if (xvfbsession) try { xvfbsession.stopSync() } catch (err) { }
29-
if (pid) try { kill(pid, 'SIGKILL') } catch (err) { }
28+
if (killProcess === true) {
29+
if (xvfbsession) try { xvfbsession.stopSync() } catch (err) { }
30+
if (chrome) try { chrome.kill() } catch (err) { console.log(err); }
31+
if (pid) try { kill(pid, 'SIGKILL') } catch (err) { }
32+
}
3033
});
3134

3235
async function turnstileSolver() {
@@ -57,7 +60,6 @@ async function pageController({ browser, page, proxy, turnstile, xvfbsession, pi
5760
});
5861

5962
const cursor = createCursor(page);
60-
await cursor.moveTo({ x: getRandomInt(0, 800), y: getRandomInt(0, 600) });
6163
page.realCursor = cursor
6264
page.realClick = cursor.click
6365

lib/esm/index.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export async function connect({ args = [], headless = false, customConfig = {},
6060

6161
let pageControllerConfig = { browser, page, proxy, turnstile, xvfbsession, pid: chrome.pid, plugins }
6262

63-
page = await pageController(pageControllerConfig);
63+
page = await pageController({ ...pageControllerConfig, chrome, killProcess: true });
6464

6565
browser.on('targetcreated', async target => {
6666
if (target.type() === 'page') {

lib/esm/module/pageController.mjs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function getRandomInt(min, max) {
88
return Math.floor(Math.random() * (max - min + 1)) + min;
99
}
1010

11-
export async function pageController({ browser, page, proxy, turnstile, xvfbsession, pid, plugins }) {
11+
export async function pageController({ browser, page, proxy, turnstile, xvfbsession, pid, plugins, killProcess = false, chrome }) {
1212

1313
if (plugins.length > 0) {
1414
for (const plugin of plugins) {
@@ -25,8 +25,11 @@ export async function pageController({ browser, page, proxy, turnstile, xvfbsess
2525

2626
browser.on('disconnected', async () => {
2727
solveStatus = false
28-
if (xvfbsession) try { xvfbsession.stopSync() } catch (err) { }
29-
if (pid) try { kill(pid, 'SIGKILL') } catch (err) { }
28+
if (killProcess === true) {
29+
if (xvfbsession) try { xvfbsession.stopSync() } catch (err) { }
30+
if (chrome) try { chrome.kill() } catch (err) { console.log(err); }
31+
if (pid) try { kill(pid, 'SIGKILL') } catch (err) { }
32+
}
3033
});
3134

3235
async function turnstileSolver() {
@@ -57,9 +60,7 @@ export async function pageController({ browser, page, proxy, turnstile, xvfbsess
5760
});
5861

5962
const cursor = createCursor(page);
60-
await cursor.moveTo({ x: getRandomInt(0, 800), y: getRandomInt(0, 600) });
6163
page.realCursor = cursor
6264
page.realClick = cursor.click
63-
6465
return page
6566
}

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "puppeteer-real-browser",
3-
"version": "1.3.9",
3+
"version": "1.3.10",
44
"description": "This package is designed to bypass puppeteer's bot-detecting captchas such as Cloudflare. It acts like a real browser and can be managed with puppeteer.",
55
"main": "lib/cjs/index.js",
66
"module": "lib/esm/index.mjs",

0 commit comments

Comments
 (0)