diff --git a/aleksis/core/tests/browser/test_selenium.py b/aleksis/core/tests/browser/test_selenium.py index e14ad8b9f123cd612848af566790d7e649d47bcc..5e9c4dfa3fc52ccdb582a7ab8d9862018e211032 100644 --- a/aleksis/core/tests/browser/test_selenium.py +++ b/aleksis/core/tests/browser/test_selenium.py @@ -7,6 +7,8 @@ from django.test.selenium import SeleniumTestCase, SeleniumTestCaseBase from django.urls import reverse import pytest +from selenium.webdriver.common.by import By +from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait from aleksis.core.models import Person @@ -43,17 +45,25 @@ class SeleniumTests(SeleniumTestCase): self._screenshot("login_default_superuser_blank.png") # Find login form input fields and enter defined credentials - self.selenium.find_element_by_xpath( - '//label[contains(text(), "Username")]/../input' + WebDriverWait(self.selenium, 10).until( + EC.element_to_be_clickable( + (By.XPATH, '//label[contains(text(), "Username")]/../input'), + ) ).send_keys(username) - self.selenium.find_element_by_xpath( - '//label[contains(text(), "Password")]/../input' + WebDriverWait(self.selenium, 10).until( + EC.element_to_be_clickable( + (By.XPATH, '//label[contains(text(), "Password")]/../input'), + ) ).send_keys(password) if with_screenshots: self._screenshot("login_default_superuser_filled.png") # Submit form by clicking django-two-factor-auth's Next button - self.selenium.find_element_by_xpath('//button[contains(text(), "Login")]').click() + WebDriverWait(self.selenium, 10).until( + EC.element_to_be_clickable( + (By.XPATH, '//button[contains(text(), "Login")]'), + ) + ).click() if with_screenshots: self._screenshot("login_default_superuser_submitted.png")