Citat:
Ursprungligen postat av
Reactor2
Hej,
Undrar hur man hämtar värdet från en hidden som bara körs när du besöker webbsidan.
Det funkar inte med en enkel get(), då är fältet tomt. Använder nodejs med express och playwright.
Frågat chatgpt, men tydligen får inte chatgpt hjälpa till med att gå förbi bottester.
Kod som inte alls fungerar.
Kod:
const { chromium } = require('playwright');
const endpoint = new URL(
'https://sida.se/'
);
async function main() {
browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
const formUrl = new URL(endpoint);
await page.goto(formUrl.href);
const captcha = page.locator('form').filter({
has: page.locator('input[name="recaptchaClientToken"]'),
});
console.log(captcha.value);
}
Hidden borde funka precis som vilket annat fält som helst, med skillnaden att du inte ser det.
Min tro givet din beskrivning är snarare att fältet inte fått nåt värde ännu, det är något annat som måste hända först innan du försöker köra din kod.
Kan du inte debugga scriptet och sätta en breakpoint vid
Kod:
const captcha = page.locator('form').filter({
has: page.locator('input[name="recaptchaClientToken"]'),
});
och kolla vad du har i din variabel?
Om du surfar till sidan du försöker kortsluta, när får du data i fältet recaptchaClientToken då, iomed att det är recaptcha misstänker jag att den kör när du fyllt i alla requiredvärden innan du klickar submit?