Igår, 22:39
  #1
Medlem
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);
}
Citera
Igår, 22:59
  #2
Medlem
Arga-Saijonmaas avatar
Vad händer om du skriver ut hela objektet captcha i console?
Citera
Igår, 23:03
  #3
Medlem
Citat:
Ursprungligen postat av Arga-Saijonmaa
Vad händer om du skriver ut hela objektet captcha i console?

Får då:

Kod:
locator('form').filter({ has: locator('input[name="recaptchaClientToken"]') })
Citera
Igår, 23:12
  #4
Medlem
filen heter browser.cjs

och jag kör node browser.cjs
Citera
Idag, 07:49
  #5
Medlem
Protons avatar
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?
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in