click on the checkbox

This commit is contained in:
2023-03-31 20:01:03 +02:00
parent c036311afa
commit 3361db1cc2
2 changed files with 37 additions and 22 deletions
+1 -1
View File
@@ -19,7 +19,7 @@
"node-schedule": "^2.1.0", "node-schedule": "^2.1.0",
"node-wget": "^0.4.3", "node-wget": "^0.4.3",
"node-xlsx": "^0.21.0", "node-xlsx": "^0.21.0",
"playwright": "1.25.2", "playwright": "^1.32.1",
"read-ini-file": "^3.0.1", "read-ini-file": "^3.0.1",
"winston": "^3.8.2", "winston": "^3.8.2",
"yarn": "^1.22.19" "yarn": "^1.22.19"
+29 -14
View File
@@ -81,11 +81,11 @@ class CommandorPage {
// Connect to the device. // Connect to the device.
log("loadPage() called"); log("loadPage() called");
// await this.device.shell('am force-stop com.android.chrome'); // await this.device.shell('am force-stop com.android.chrome');
const context = await this.device.launchBrowser(); try {
this.context = await this.device.launchBrowser();
// await context.clearCookies() // await context.clearCookies()
// Use BrowserContext as usual. // Use BrowserContext as usual.
this.page = await context.newPage(); this.page = await this.context.newPage();
this.page.on("load", (loadedPage) => { this.page.on("load", (loadedPage) => {
this.onPageLoad(loadedPage) this.onPageLoad(loadedPage)
}) })
@@ -93,6 +93,11 @@ class CommandorPage {
this.page.on("response", (response) => { this.page.on("response", (response) => {
this.onResponse(response) this.onResponse(response)
}) })
} catch (e) {
log(e)
this.isTerminated = true
}
try { try {
const item = searchTexts[Math.floor(Math.random() * searchTexts.length)]; const item = searchTexts[Math.floor(Math.random() * searchTexts.length)];
await this.page.goto("https://www.google.com/search?q=" + item + "&lr=lang_en", {timeout: 90 * 1000}); await this.page.goto("https://www.google.com/search?q=" + item + "&lr=lang_en", {timeout: 90 * 1000});
@@ -104,15 +109,9 @@ class CommandorPage {
try { try {
if (this.page.url().includes("google")) if (this.page.url().includes("google"))
this.page.locator('button >> nth=3').click() this.page.locator('button >> nth=3').click()
// this.page.locator('button:has-text("Tout accepter")').click()
} catch (e) { } catch (e) {
log(e) log(e)
} }
// try {
// this.page.locator('button:has-text("Accept all")').click()
// } catch (e) {
// log(e)
// }
try { try {
this.page.locator(':nth-match(:text("rendezvousparis"), 1)').click() this.page.locator(':nth-match(:text("rendezvousparis"), 1)').click()
} catch (e) { } catch (e) {
@@ -124,12 +123,17 @@ class CommandorPage {
const intervalTask = setInterval(() => { const intervalTask = setInterval(() => {
if (this.isTerminated) { if (this.isTerminated) {
log(this.device.model() + ":request terminated, will close device"); log(this.device.model() + ":request terminated, will close device");
context.close(); this.context.close();
// this.page.close() // this.page.close()
this.device.close() // this.device.close()
clearInterval(intervalTask) clearInterval(intervalTask)
cancel() cancel()
return context return this.context
} else {
if (this.page.url() === RDV_URL) {
if (!this.isFillingFields)
this.fillFields(this.page);
}
} }
}, 10 * 1000)//interval of 10 seconds }, 10 * 1000)//interval of 10 seconds
@@ -316,6 +320,8 @@ class CommandorPage {
let pageContent = await page.content() let pageContent = await page.content()
let hasCaptcha = pageContent.includes("g-recaptcha-response") let hasCaptcha = pageContent.includes("g-recaptcha-response")
if (hasCaptcha) { if (hasCaptcha) {
await this.clickCheckbox()
await delay(1000)
this.captchaSolver = new SolveCaptcha(page); this.captchaSolver = new SolveCaptcha(page);
await this.captchaSolver.start((solution) => { await this.captchaSolver.start((solution) => {
log("solution is: " + solution); log("solution is: " + solution);
@@ -370,8 +376,8 @@ class CommandorPage {
} else { } else {
if (currentPage.url() === RDV_URL) { if (currentPage.url() === RDV_URL) {
await this.fillFields(this.page); await this.fillFields(this.page);
if (this.isFillingFields) // if (this.isFillingFields)
await this.getErrors() // await this.getErrors()
} else { } else {
if (content.includes(MESSAGE_URL_VALIDATION_FR) || content.includes(MESSAGE_URL_VALIDATION_EN)) { if (content.includes(MESSAGE_URL_VALIDATION_FR) || content.includes(MESSAGE_URL_VALIDATION_EN)) {
log("successful"); log("successful");
@@ -462,6 +468,15 @@ class CommandorPage {
} }
} }
async clickCheckbox() {
try {
// let errorItem = await this.page.click("#recaptcha-anchor > div.recaptcha-checkbox-border")
await this.page.frameLocator('[title="reCAPTCHA"]').getByRole('checkbox', {name: 'I\'m not a robot'}).click();
} catch (e) {
log(e);
}
}
async handleError(errorContent) { async handleError(errorContent) {
log("handle error:" + errorContent); log("handle error:" + errorContent);
if (errorContent.includes(DOUBLE_REQUEST_ERROR_MESSAGE) || errorContent.includes(DOUBLE_REQUEST_ERROR_MESSAGE_FR)) { if (errorContent.includes(DOUBLE_REQUEST_ERROR_MESSAGE) || errorContent.includes(DOUBLE_REQUEST_ERROR_MESSAGE_FR)) {