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
相关产品推荐
相关产品推荐

