Мое явное ожидание - это не ожидание появления элемента. Он буквально ждет указанное мной количество секунд, а затем тесты по-прежнему терпят неудачу. Если я помещаю неявное ожидание в то же самое место, где проходит тест. Из того, что я читаю, лучше всего избегать неявных ожиданий, насколько это возможно. Я делаю что-то неправильно?
Я сделал такой метод на base_page:
def _wait_for_is_displayed(self, locator, timeout):
try:
wait = WebDriverWait(self.driver, timeout)
wait.until(expected_conditions.visibility_of_element_located((locator["by"], locator["value"])))
except TimeoutException:
return False
return True
затем я вызываю метод _wait_for_is_displayed в объекте страницы следующим образом, но терпит неудачу:
def relatie_page_present(self):
self._wait_for_is_displayed(self._open_actieve_polissen_tab, 10)
def relatie_page_(self):
self._click(self._open_relatie_details)
self.relatie_page_present()
Я получаю следующую ошибку:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"td.first > a"}
Это проходит:
def relatie_page_present(self):
self.driver.implicitly_wait(10)
def relatie_page_(self):
self._click(self._open_relatie_details)
self.relatie_page_present()
Наконец, в своем наборе тестов я вызываю методы relatie_page_present и relatie_page_.