Метод click() отработал, но модальное окно не открылось

Ситуация следующая, в логах пишет что в add_employee_from_directory первый метод click_to_element отработал и на find_element_by_text падает ошибка TimeOut. Эта ошибка выходит из-за того что метод клика вроде как отработал, но самого клика не произошло (смотрел при запуске теста в вебе), должно было открыться модальное окно с содержимым. Пробовал клик через js, выставлял ожидания и кондишены, толку 0 и клик через раз происходит. Кто ни будь сталкивался с таким?

@allure.step('Создаем сотрудника из справочника')
def add_employee_from_directory(self, employer, month):
    self.log_element_state(element.CREATE_FROM_DIRECTORY_BTN)
    self.click_to_element(element.CREATE_FROM_DIRECTORY_BTN)
    self.find_element_by_text('span', employer).click()
    self.click_to_element(element.ACCEPT_EMPLOYEE_BTN)
    expected_value = self.get_attribute_js(element.EMPLOYEE_ROW, 'value', employer)
    self.return_state_disabled_attribute(element.EMPLOYEE_ROW)
    self.select_current_period(month)
    assert employer in expected_value, \
        f"{employer} != {expected_value}"

def click_to_element(self, locator, condition=EC.element_to_be_clickable, time=30):
    elem = WebDriverWait(self.driver, time).until(condition(locator))
    elem.click()

Ответы (1 шт):

Автор решения: Василий Волгин

Возможно, клик выполняется, но:

  • Элемент перекрыт
  • Не завершилась анимация
  • iframe не переключен
  • Клик выполняется слишком рано

Попробуй move_to_element, is_displayed(), ожидание модального окна. Лиибо можно попробовать использовать крайний вариант через JS тыкнуть. Пример:

self.driver.execute_script("arguments[0].click();", elem)
→ Ссылка