You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright-Java中onResponse处理器未被调用问题求助

Playwright-Java中onResponse处理器未触发的解决方案

你的问题出在onResponse的Consumer实现多了一层不必要的大括号,导致实际逻辑根本没被执行。

看你原来的代码片段:

page.onResponse(Consumer { response: Response? -> {
    println("<< RESPONSE " + response!!.status() + " " + response.url())
}})

这里箭头->后面的{}是多余的,相当于你给Consumer的accept方法返回了一个未执行的代码块,而不是直接执行打印操作。

修正后的onResponse代码应该是:

page.onResponse(Consumer { response: Response? ->
    println("<< RESPONSE " + response!!.status() + " " + response.url())
})

完整的修正代码如下:

import com.microsoft.playwright.*
import java.nio.file.Paths
import java.util.function.Consumer

fun main() {
    Playwright.create().use { playwright ->
        val browser: Browser = playwright.firefox().launch()
        val page: Page = browser.newPage()
        
        page.onRequest(Consumer { request: Request? ->
            println(">> " + request!!.method() + " " + request.url())
        })
        
        // 修正后的onResponse处理器
        page.onResponse(Consumer { response: Response? ->
            println("<< RESPONSE " + response!!.status() + " " + response.url())
        })
        
        page.onRequestFinished(Consumer { request: Request? ->
            println(">> FINISHED " + request!!.method() + " " + request.url())
        })
        
        page.navigate("https://www.york.ac.uk/teaching/cws/wws/webpage1.html")
        page.screenshot(Page.ScreenshotOptions().setPath(Paths.get("example.png")))
    }
}

去掉这层多余的大括号后,onResponse处理器就能正常触发,打印响应的状态码和URL了。

内容的提问来源于stack exchange,提问作者Kamil Horvát

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:22:45