Speed up integration tests

We have a place in the form-handling code where we look for the
blue form submit button, and if it's not found, we look for the
red form submit button. It looks correct at first glance, however
it takes 10 seconds to throw NoSuchElementException, because there
is a delay that makes sure that the page loads fully before raising
that exception. Replacing this with a selector that finds both the
blue and the red buttons in one query speeds the whole integration
tests suite by half an hour, because there is no more waiting on
every delete confirmation dialog.

Change-Id: Ie256118c0a84a8868393018b25b0aa049582a17d
(cherry picked from commit 2e6eca2947)
This commit is contained in:
Radomir Dopieralski 2022-05-13 15:35:58 +02:00 committed by Tatiana Ovchinnikova
parent cefc8bc0db
commit 1ea855e310
1 changed files with 2 additions and 6 deletions

View File

@ -298,8 +298,7 @@ class ThemableSelectFormFieldRegion(BaseFormFieldRegion):
class BaseFormRegion(baseregion.BaseRegion):
"""Base class for forms."""
_submit_locator = (by.By.CSS_SELECTOR, '*.btn.btn-primary')
_submit_danger_locator = (by.By.CSS_SELECTOR, '*.btn.btn-danger')
_submit_locator = (by.By.CSS_SELECTOR, '*.btn.btn-primary,*.btn.btn-danger')
_cancel_locator = (by.By.CSS_SELECTOR, '*.btn.cancel')
_default_form_locator = (by.By.CSS_SELECTOR, 'div.modal-dialog')
@ -315,10 +314,7 @@ class BaseFormRegion(baseregion.BaseRegion):
@property
def _submit_element(self):
try:
submit_element = self._get_element(*self._submit_locator)
except exceptions.NoSuchElementException:
submit_element = self._get_element(*self._submit_danger_locator)
submit_element = self._get_element(*self._submit_locator)
return submit_element
def submit(self):