问题描述
我希望剧作家尽早失败,并在一个 http 请求不是 200
或 302
时立即停止。
def test_it(live_server):
os.environ['DEBUG']='pw:api'
with sync_playwright() as playwright:
run_test_id(live_server,playwright)
def run_test_id(live_server,playwright):
browser = playwright.webkit.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto(live_server.url)
page.click("text=Create Test Data")
不幸的是,page.click()
返回 None,所以我不知道如何检查点击的 http 状态。
如何在 Playwright 中实现“在异常 http 状态下失败”?
解决方法
一个选项是使用 page.on()
:
def handle_response(response):
print(f"{response.status}")
if response.status == 500:
exit(1)
page.on("response",handle_request)
但是,这不仅会检查点击后的状态代码,还会检查请求的任何响应,例如,如果您的 page.goto()
返回 500,它也会在此处停止。>
(我更习惯使用 JS 的 Playwright,所以我的例子可能有点偏离。)