Harden e2e waits against loaded-box flakes; add AGENTS.md
This commit is contained in:
+18
-1
@@ -128,17 +128,34 @@ def browser(app_server):
|
||||
browser.close()
|
||||
|
||||
|
||||
def _record_console_error(page, message):
|
||||
if message.type == "error" and "ERR_NETWORK_CHANGED" not in message.text:
|
||||
page.console_errors.append(message.text)
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def page(browser):
|
||||
context = browser.new_context(viewport={"width": 1280, "height": 900}, locale="nl-NL")
|
||||
page = context.new_page()
|
||||
page.set_default_timeout(60000)
|
||||
page.console_errors = []
|
||||
page.on("pageerror", lambda error: page.console_errors.append(str(error)))
|
||||
page.on("console", lambda message: message.type == "error" and page.console_errors.append(message.text))
|
||||
page.on("console", lambda message: _record_console_error(page, message))
|
||||
yield page
|
||||
context.close()
|
||||
|
||||
|
||||
def goto_ready(page, url):
|
||||
from playwright.sync_api import TimeoutError as PlaywrightTimeoutError
|
||||
|
||||
page.goto(url, wait_until="domcontentloaded")
|
||||
try:
|
||||
page.wait_for_selector("html[data-app=ready]")
|
||||
except PlaywrightTimeoutError:
|
||||
page.reload(wait_until="domcontentloaded")
|
||||
page.wait_for_selector("html[data-app=ready]")
|
||||
|
||||
|
||||
def pytest_sessionfinish(session, exitstatus):
|
||||
shutil.rmtree(TEST_DATA_DIR, ignore_errors=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user