>웹 프론트엔드 >JS 튜토리얼 >Puppeteer의 `page.evaluate()` 함수에 변수를 어떻게 전달할 수 있나요?

Puppeteer의 `page.evaluate()` 함수에 변수를 어떻게 전달할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-10 17:42:11147검색

How Can I Pass Variables to Puppeteer's `page.evaluate()` Function?

page.evaluate() 함수의 변수

Puppeteer의 page.evaluate() 함수는 페이지 실행 내에서 JavaScript를 실행하기 위한 다목적 도구입니다. 문맥. 그러나 이 함수에 변수를 전달하는 것은 까다로울 수 있습니다.

정의되지 않은 변수

page.evaluate() 함수 내에서 변수에 액세스하려고 하면 다음과 같은 문제가 발생할 수 있습니다. "evalVar: 정의되지 않음" 오류. 함수 외부에서 정의된 변수는 함수 내에서 접근할 수 없기 때문입니다.

인수를 통해 변수 전달

이 문제를 해결하려면 변수를 페이지에 인수로 전달하세요. 다음과 같은 기능을 수행합니다:

const links = await page.evaluate((evalVar) => {

  console.log(evalVar); // 2. Should be defined now

  ...

}, evalVar); // 1. Pass the variable as an argument

다중 변수

page.evaluate()에 더 많은 인수를 추가하여 여러 변수를 전달할 수도 있습니다.

await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)

직렬화 가능한 매개변수

전달하는 인수는 JSON으로 직렬화 가능하거나 브라우저 내 객체의 JSHandle이어야 합니다. 자세한 내용은 공식 Puppeteer 문서를 참조하세요: https://pptr.dev/#?show=api-pageevaluatepagefunction-args.

위 내용은 Puppeteer의 `page.evaluate()` 함수에 변수를 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.