From 1cec85b9e907a2bdc170ef4a13b1d7a98ea2a5b8 Mon Sep 17 00:00:00 2001 From: Ralf Vogler Date: Tue, 28 Dec 2021 17:23:38 +0100 Subject: [PATCH] rm main.captcha.js --- main.captcha.js | 48 ------- package-lock.json | 337 +--------------------------------------------- package.json | 4 - 3 files changed, 2 insertions(+), 387 deletions(-) delete mode 100644 main.captcha.js diff --git a/main.captcha.js b/main.captcha.js deleted file mode 100644 index 56a6217..0000000 --- a/main.captcha.js +++ /dev/null @@ -1,48 +0,0 @@ -const { existsSync } = require('fs'); -if (!existsSync('auth.json')) { - console.error('Missing auth.json! Run `npm login` to login and create this file by closing the opened browser.'); -} - -// npm i playwright playwright-extra@next @extra/recaptcha@next -const { chromium } = require('playwright-extra') - -// add recaptcha plugin and provide it your 2captcha token (= their apiKey) -// Please note: You need to add funds to your 2captcha account for this to work -// https://2captcha.com?from=13225256 -const RecaptchaPlugin = require('@extra/recaptcha') -const RecaptchaOptions = { - visualFeedback: true, // colorize reCAPTCHAs (violet = detected, green = solved) - provider: { - id: '2captcha', - token: process.env.API_KEY, // put your API_KEY=... in .env - }, -} -chromium.use(RecaptchaPlugin(RecaptchaOptions)); - -(async () => { - const browser = await chromium.launch({ - headless: false, - executablePath: 'node_modules/puppeteer/.local-chromium/mac-938248/chrome-mac/Chromium.app/Contents/MacOS/Chromium', // why does it fail without? - }); - const context = await browser.newContext({ - storageState: 'auth.json', - viewport: { width: 1280, height: 1280 }, - }); - const page = await context.newPage(); - await page.goto('https://www.epicgames.com/store/en-US/free-games'); - // await expect(page.locator('a[role="button"]:has-text("Sign In")')).toHaveCount(0); - await page.click('#onetrust-accept-btn-handler'); // accept cookies to not waste screen space - await page.click('[data-testid="offer-card-image-landscape"]'); - // TODO check if already claimed - await page.click('[data-testid="purchase-cta-button"]'); - await page.click('div[data-component=makePlatformUnsupportedWarningStep] > button'); - // it then creates an iframe for the rest - // await page.frame({ url: /.*store\/purchase.*/ }).click('button:has-text("Place Order")'); // not found because it does not wait for iframe - const iframe = page.frameLocator('.webPurchaseContainer iframe') - await iframe.locator('button:has-text("Place Order")').click(); - await iframe.locator('button:has-text("I Agree")').click(); - await page.solveRecaptchas(); - await page.pause(); - await context.close(); - await browser.close(); -})(); diff --git a/package-lock.json b/package-lock.json index a8d893e..c175607 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,11 +5,8 @@ "packages": { "": { "devDependencies": { - "@extra/recaptcha": "^4.2.1-next.616", "@playwright/test": "^1.17.1", - "dotenv": "^10.0.0", "playwright": "^1.17.1", - "playwright-extra": "^4.2.1-next.616", "puppeteer-extra-plugin-stealth": "^2.9.0" } }, @@ -750,19 +747,6 @@ "node": ">=6.9.0" } }, - "node_modules/@extra/recaptcha": { - "version": "4.2.1-next.616", - "resolved": "https://registry.npmjs.org/@extra/recaptcha/-/recaptcha-4.2.1-next.616.tgz", - "integrity": "sha512-LSTKE9LiFj4L9fpRODtmGhnkMWsbeBJGoHXKUwjlheIkzO5QJSOElGjlfZUDBHa+X9cbztwnq95LbzzU5Otl7w==", - "dev": true, - "dependencies": { - "automation-extra-plugin": "^4.2.2-next.616+846b2f2", - "debug": "^4.1.1" - }, - "engines": { - "node": ">=9.11.2" - } - }, "node_modules/@jest/types": { "version": "27.4.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", @@ -948,6 +932,7 @@ "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.3.tgz", "integrity": "sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==", "dev": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -1025,113 +1010,6 @@ "node": ">=0.10.0" } }, - "node_modules/automation-extra": { - "version": "4.2.1-next.616", - "resolved": "https://registry.npmjs.org/automation-extra/-/automation-extra-4.2.1-next.616.tgz", - "integrity": "sha512-D1gYD2sWhelQXZr9BHO1G7EFxB+ncKDQ4Ea2yoSwbv+Q0ExmreNGmYHW3g3eDQZs2YphpKnbtkMTXR+wDXWbiA==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.0", - "@types/puppeteer": "5.4.3", - "automation-extra-plugin": "^4.2.2-next.616+846b2f2", - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "playwright-core": "1.8.0", - "puppeteer-extra-plugin": "^3.1.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/automation-extra-plugin": { - "version": "4.2.2-next.616", - "resolved": "https://registry.npmjs.org/automation-extra-plugin/-/automation-extra-plugin-4.2.2-next.616.tgz", - "integrity": "sha512-KwEM1GxITOKqDFElnoEbgWOLNl+IITstAJ2KZGAuCmcS09fjPQ1mG7uS31Za8BgaLwqdq1pQc/RShXdJLmH3AQ==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.0", - "@types/puppeteer": "5.4.3", - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "is-plain-object": "^5.0.0", - "playwright-core": "1.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/automation-extra-plugin/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/automation-extra-plugin/node_modules/playwright-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.0.tgz", - "integrity": "sha512-3FDiIMabIkamEOPqdjHrPA1puIElx3iYIaln1k5G8ZyGRubmPE9AijHyTXYqkavgteUp+Kb8QOeE13nlnQ++Fg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "commander": "^6.1.0", - "debug": "^4.1.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "ws": "^7.3.1" - }, - "bin": { - "playwright": "lib/cli/cli.js" - }, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/automation-extra/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/automation-extra/node_modules/playwright-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.0.tgz", - "integrity": "sha512-3FDiIMabIkamEOPqdjHrPA1puIElx3iYIaln1k5G8ZyGRubmPE9AijHyTXYqkavgteUp+Kb8QOeE13nlnQ++Fg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "commander": "^6.1.0", - "debug": "^4.1.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "ws": "^7.3.1" - }, - "bin": { - "playwright": "lib/cli/cli.js" - }, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -1448,15 +1326,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/electron-to-chromium": { "version": "1.4.28", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.28.tgz", @@ -1829,15 +1698,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -2557,55 +2417,6 @@ "node": ">=12" } }, - "node_modules/playwright-extra": { - "version": "4.2.1-next.616", - "resolved": "https://registry.npmjs.org/playwright-extra/-/playwright-extra-4.2.1-next.616.tgz", - "integrity": "sha512-NFxCvLSOkyXByFUfff0b4hwWRmHDTNB7YhUhXckWR2ct9p1OyvBZrHQfesv8eq43iAqNwALWulOGDtKxPvrTlA==", - "dev": true, - "dependencies": { - "automation-extra": "^4.2.1-next.616+846b2f2", - "playwright-core": "1.8.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/playwright-extra/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/playwright-extra/node_modules/playwright-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.0.tgz", - "integrity": "sha512-3FDiIMabIkamEOPqdjHrPA1puIElx3iYIaln1k5G8ZyGRubmPE9AijHyTXYqkavgteUp+Kb8QOeE13nlnQ++Fg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "commander": "^6.1.0", - "debug": "^4.1.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "ws": "^7.3.1" - }, - "bin": { - "playwright": "lib/cli/cli.js" - }, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", @@ -3744,16 +3555,6 @@ "to-fast-properties": "^2.0.0" } }, - "@extra/recaptcha": { - "version": "4.2.1-next.616", - "resolved": "https://registry.npmjs.org/@extra/recaptcha/-/recaptcha-4.2.1-next.616.tgz", - "integrity": "sha512-LSTKE9LiFj4L9fpRODtmGhnkMWsbeBJGoHXKUwjlheIkzO5QJSOElGjlfZUDBHa+X9cbztwnq95LbzzU5Otl7w==", - "dev": true, - "requires": { - "automation-extra-plugin": "^4.2.2-next.616+846b2f2", - "debug": "^4.1.1" - } - }, "@jest/types": { "version": "27.4.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", @@ -3911,6 +3712,7 @@ "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.3.tgz", "integrity": "sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==", "dev": true, + "peer": true, "requires": { "@types/node": "*" } @@ -3976,91 +3778,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "automation-extra": { - "version": "4.2.1-next.616", - "resolved": "https://registry.npmjs.org/automation-extra/-/automation-extra-4.2.1-next.616.tgz", - "integrity": "sha512-D1gYD2sWhelQXZr9BHO1G7EFxB+ncKDQ4Ea2yoSwbv+Q0ExmreNGmYHW3g3eDQZs2YphpKnbtkMTXR+wDXWbiA==", - "dev": true, - "requires": { - "@types/debug": "^4.1.0", - "@types/puppeteer": "5.4.3", - "automation-extra-plugin": "^4.2.2-next.616+846b2f2", - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "playwright-core": "1.8.0", - "puppeteer-extra-plugin": "^3.1.8" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "playwright-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.0.tgz", - "integrity": "sha512-3FDiIMabIkamEOPqdjHrPA1puIElx3iYIaln1k5G8ZyGRubmPE9AijHyTXYqkavgteUp+Kb8QOeE13nlnQ++Fg==", - "dev": true, - "requires": { - "commander": "^6.1.0", - "debug": "^4.1.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "ws": "^7.3.1" - } - } - } - }, - "automation-extra-plugin": { - "version": "4.2.2-next.616", - "resolved": "https://registry.npmjs.org/automation-extra-plugin/-/automation-extra-plugin-4.2.2-next.616.tgz", - "integrity": "sha512-KwEM1GxITOKqDFElnoEbgWOLNl+IITstAJ2KZGAuCmcS09fjPQ1mG7uS31Za8BgaLwqdq1pQc/RShXdJLmH3AQ==", - "dev": true, - "requires": { - "@types/debug": "^4.1.0", - "@types/puppeteer": "5.4.3", - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "is-plain-object": "^5.0.0", - "playwright-core": "1.8.0" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "playwright-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.0.tgz", - "integrity": "sha512-3FDiIMabIkamEOPqdjHrPA1puIElx3iYIaln1k5G8ZyGRubmPE9AijHyTXYqkavgteUp+Kb8QOeE13nlnQ++Fg==", - "dev": true, - "requires": { - "commander": "^6.1.0", - "debug": "^4.1.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "ws": "^7.3.1" - } - } - } - }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -4295,12 +4012,6 @@ "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", "dev": true }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - }, "electron-to-chromium": { "version": "1.4.28", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.28.tgz", @@ -4572,12 +4283,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -5112,44 +4817,6 @@ "yazl": "^2.5.1" } }, - "playwright-extra": { - "version": "4.2.1-next.616", - "resolved": "https://registry.npmjs.org/playwright-extra/-/playwright-extra-4.2.1-next.616.tgz", - "integrity": "sha512-NFxCvLSOkyXByFUfff0b4hwWRmHDTNB7YhUhXckWR2ct9p1OyvBZrHQfesv8eq43iAqNwALWulOGDtKxPvrTlA==", - "dev": true, - "requires": { - "automation-extra": "^4.2.1-next.616+846b2f2", - "playwright-core": "1.8.0" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "playwright-core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.8.0.tgz", - "integrity": "sha512-3FDiIMabIkamEOPqdjHrPA1puIElx3iYIaln1k5G8ZyGRubmPE9AijHyTXYqkavgteUp+Kb8QOeE13nlnQ++Fg==", - "dev": true, - "requires": { - "commander": "^6.1.0", - "debug": "^4.1.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "ws": "^7.3.1" - } - } - } - }, "pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", diff --git a/package.json b/package.json index a746e7e..20f1e82 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,11 @@ "codegen": "npx playwright codegen --load-storage=auth.json https://www.epicgames.com/store/en-US/free-games", "start": "npx playwright test --timeout 10000", "debug": "npx playwright test --debug", - "captcha": "node main.captcha", "stealth": "node main.stealth" }, "devDependencies": { - "@extra/recaptcha": "^4.2.1-next.616", "@playwright/test": "^1.17.1", - "dotenv": "^10.0.0", "playwright": "^1.17.1", - "playwright-extra": "^4.2.1-next.616", "puppeteer-extra-plugin-stealth": "^2.9.0" } }