suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Greifen Sie in Puppeteer auf Javascript-Fenstervariablen zu

<p>In meinem Puppeteer-Skript verwende ich die Datei JS, um sie vor dem Laden der Seite auszuführen: </p> <pre class="brush:js;toolbar:false;">const preloadFile = fs.readFileSync('./file.js', 'utf8'); const id = waiting page.evaluateOnNewDocument(preloadFile); </pre> <p>file.js enthält: </p> <pre class="brush:js;toolbar:false;">const i = setInterval(()=>{ if (window.turnstile) { clearInterval(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) gib 'foo' zurück } } },50) </pre> <p>Dieses Skript druckt ein Objekt (Aktion, Cdata, Callback...) auf der Browserkonsole</p> <p>Ich möchte dieses Objekt von der Puppenspielerseite erhalten und die Funktion callback() aufrufen können. </p> <p>Ich habe page.evaluate() verwendet, aber es hat bei mir nicht funktioniert</p>
P粉787806024P粉787806024454 Tage vor595

Antworte allen(1)Ich werde antworten

  • P粉193307465

    P粉1933074652023-09-05 12:27:00

    您可以使用我的 Puppeteer 包装库 https://github.com/wix-incubator/ bubanai/pulls 来实现这个目标(从浏览器控制台获取对象),使用 new ConsoleDriver(context).getMessages() 方法,然后将接收到的对象从数组转换为 JSON...< /p>

    或者只是将 ConsoleDriver 代码复制到您的项目中。

    参考

    使用示例

    Antwort
    0
  • StornierenAntwort