Puppeteer에서 자바스크립트 창 변수에 액세스
P粉787806024
2023-09-04 23:32:41
<p>내 Puppeteer 스크립트에서는 JS 파일을 사용하여 페이지를 로드하기 전에 실행합니다. </p>
<pre class="brush:js;toolbar:false;">const preloadFile = fs.readFileSync('./file.js', 'utf8');
const id = page.evaluateOnNewDocument(preloadFile)를 기다립니다.
</pre>
<p>file.js에는 다음이 포함됩니다. </p>
<pre class="brush:js;toolbar:false;">const i = setInterval(()=>{
if (window.turnstile) {
클리어 인터벌(i)
window.turnstile.render = (a,b) =>
b.userAgent = navigator.userAgent
window.tsCallback = b.callback
window.action = b.action
window.data = b.cData
console.log(b)
'foo'를 반환
}
}
},50)
</pre>
<p>이 스크립트는 브라우저 콘솔에 개체(Action, Cdata, Callback...)를 인쇄합니다</p>
<p>인형극 측에서 이 객체를 가져오고 콜백() 함수를 호출할 수 있기를 원합니다. </p>
<p>page.evaluate()를 사용했지만 작동하지 않았습니다</p>
내 Puppeteer 래퍼 라이브러리 https://github.com/wix-incubator/bubanai/pulls를 사용하여 이를 달성하고(브라우저 콘솔에서 개체 가져오기)
new ConsoleDriver(context).getMessages()
메서드를 사용한 다음 수신된 개체를 끌어올 수 있습니다. JSON으로 배열...또는 ConsoleDriver 코드를 프로젝트에 복사하세요.
참고
사용예