mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
tests: functional: Handle click failure when waiting for page update
When a click fails because the element is obscured or out of scroll port, the fails with ElementClickInterceptedException. This normally fails the test properly. However, when waiting for a page update, the wait loop silently swallows the error causing the click failure to be ignored. This later leads to a timeout waiting for page to be updated. Handling this error separately and re-raising it ensures that the test fails with the correct error allowing us to fix the problem. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
parent
df55ba8c61
commit
170685c806
@ -15,7 +15,8 @@ from contextlib import contextmanager
|
||||
|
||||
import pytest
|
||||
import requests
|
||||
from selenium.common.exceptions import (StaleElementReferenceException,
|
||||
from selenium.common.exceptions import (ElementClickInterceptedException,
|
||||
StaleElementReferenceException,
|
||||
WebDriverException)
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
@ -131,6 +132,10 @@ def wait_for_page_update(browser, timeout=300, expected_url=None):
|
||||
page_body = browser.find_by_tag('body').first
|
||||
try:
|
||||
yield
|
||||
except ElementClickInterceptedException:
|
||||
# When a element that is not visible is clicked, the click is ignored
|
||||
# and we can't expect a page update.
|
||||
raise
|
||||
except WebDriverException:
|
||||
# ignore a connection failure which may happen after web server restart
|
||||
pass
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user