🔧 Need a programmer (Node.js) — repair of the existing Chrome CDP program
There is a ready Windows program that has been working for months but suddenly broke without any code changes.
What the program does:
It sequentially opens real Chrome profiles, goes to threeplus.three.co.uk, clicks Get Reward → My Codes, reads 1 code, and saves it in CSV. It works one-by-one, without parallel runs.
Problem:
After the first Chrome profile does not close physically, chrome.exe remains, and the next run fails with:
Protocol error (Target.setAutoAttach): Target closed
Already checked (this is NOT the reason):
JSON / config / number of profiles
maxProcessCount
rewards_url / site logic
antivirus / Defender
Chrome path / compatibility of chrome.exe
temporary clean profile works
the program worked yesterday without changes
Task:
Fix correct shutdown of Chrome / CDP, without rewriting the program.
❌ Selenium / headless / proxy
✅ Real Chrome, CDP, existing profiles
💸 I expect a low-cost implementation
(including — because the site changes several times a month — I will regularly contact you for payment for minor adjustments).
Below is part of the original order when I ordered the program.
🎯 Goal
Create a desktop program (in Python or Node.js) that automatically opens real Chrome profiles, logs into 20 Three+ accounts, clicks Get Reward, goes to My Codes, extracts the code in the form of TH3DC\d{9,} and adds it to the corresponding row in CSV.
⚙️ Functionality
Runs manually on Windows (without auto-start or services).
Works through real Chrome with local profiles (user-data-dir + profile-directory).
Does not use headless mode, Selenium, HTTP requests, or proxies.
Simulates human actions: launching the browser, clicking, navigating, pausing.
Processes up to 20 accounts per run (specified in the config).
Skips accounts where the code is already in CSV.
🔄 Workflow Algorithm
Step 1: Load Configuration
Reads settings.json (chrome path, list of profiles, CSV path, delays).
Reads CSV, identifies accounts without codes.
Step 2: Process Each Profile
Launches Chrome with the specified profile:
iniCopyEdit--user-data-dir=<user_data_dir>
--profile-directory=<profile_dir>
--remote-debugging-port=9222
Connects via CDP (Playwright or Puppeteer).
Opens rewards_url.
Waits for the page to fully load.
Clicks the Get Reward button (with a valid click, not .click()): valid click (via Playwright/Puppeteer with mouse.move + mouse.down + mouse.up, without .click()).
Waits 3–5 seconds.
Step 3: Read Code from My Codes
Goes to the page https://threeplus.three.co.uk/my-rewards
(or clicks Go to my codes if it appeared after Get Reward).
Searches for the last code in the format TH3DC\d{9,} in the DOM (via innerText / textContent).
Saves in CSV as:
CopyEditProfile_01,TH3DC103897998490
Closes the browser (but does not log out).
Waits a random delay (20–40 seconds).
Repeats for up to 20 accounts.
🧠 How the code is read (clear algorithm)
OCR, screenshots, and modal windows are not used.
The code is always read from the My Codes page - after clicking "Get Reward"
Code format: TH3DC103897998490 (pattern: TH3DC\d{9,}).
Reading: through DOM (innerText, textContent, evaluate()).
⚙️ Configuration (settings.json)
jsonCopyEdit{
"chrome_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"profiles": [
{
"user_data_dir": "C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data",
"profile_dir": "Profile 1"
}
// ...
],
"rewards_url": "https://threeplus.three.co.uk/rewards",
"csv_path": "C:\\path\\to\\accounts.csv",
"delay_range_seconds": [90, 240]
}
📄 CSV Format
csvCopyEditaccount,code
profile_01,
profile_02,
🚫 Prohibited
| Action | Reason |
|---|
| Selenium/WebDriver | Easy to detect, triggers SMS |
| Headless mode | Detected by the site |
| HTTP/API requests | Flutter Web, Canvas rendering |
| Multithreading | Causes suspicion/blocking |
| Proxy or IP change | Triggers re-authentication |
| Delays < 5 seconds | Unusual behavior |
📦 Expected output files
.exe for Windows (1 file).
Full source code with comments.
README.md with instructions.
Example settings.json.
Need a programmer (Node.js) - repair of the existing Chrome CDP program - which I made here for $34
What has already been checked and is NOT the cause:
JSON / config:
maxProcessCount, rewards_url, chrome_path, csv_path — correct.
Changes in JSON do not affect remote_debugging_port (the code does not account for it).
Antivirus / Defender / Firewall:
Disabled, not blocking.
Ports checked — no conflicts.
Chrome:
Path is correct, clean profile launches.
Manual launch with --user-data-dir works → Chrome itself is okay.
Remote debugging ports:
9222 is unstable, others (9223+, 9333) work manually.
The program does not connect to http://localhost:<port>/json → CDP does not open.
Launching/closing Chrome through the program:
First profile is okay.
After that — hanging Chrome process and error:
Protocol error (Target.setAutoAttach): Target closed.
Three+ site:
Logic has not changed, works manually.
Key new factor:
The problem started after the Chrome update, meaning most likely the update changed:
Brief conclusion for the programmer:
The program configuration is normal.
The main problem is in the way of launching and connecting to Chrome via CDP.
After the last Chrome update, the behavior of --remote-debugging-port changed, and the program either does not wait for a stable start or closes the process incorrectly.
So now:
and the following appears:
Target.setAutoAttach → Target closed.
Log in
or
register,
to view the original