Пропуск видимости элемента и бесконечный цикл

Приветствую, коллеги.
Имеется поле с валидацией в которое вводится 10 цифр.
Про вводе неправильного набора цифр валидация не пропускает и появляется красный смайлик.
xpath

   Написал вот такую функцию с циклом : 
    def input_iccid(self):

    iccid = random.randint(200000000, 299999999)

    self.element_is_visible(self.locators.NUMBER_ICCID).click()
    self.element_is_visible(self.locators.NUMBER_ICCID).send_keys('0' + str(iccid))
    self.element_is_visible(self.locators.PHONE_NUMBER).click()



    while self.element_is_visible(self.locators.SMILE_RED):

        self.input_iccid()

    if self.element_is_visible(self.locators.SMILE):
            
            print('Введен верный ICCID')
            break
  К element_is_visible относится функция : 
  def element_is_visible(self, locator, timeout = 5):
          return wait(self.driver, timeout).until(EC.visibility_of_element_located(locator))

Проблема в том, что цикл не останавливается когда введенный номер проходит валидацию и красный смайлик становится серым. По чему-то не отрабатывает второе условие.
В чем может быть проблема ?

Пробовал и так тоже :
    if self.element_is_visible(self.locators.SMILE_RED):
        self.input_iccid()

    else:
        print('Введен верный номер')

если честно, это ультраплохой дизайн теста; нельзя завязывать бесконечные циклы на отрисовку/неотрисовку элемента

тестов должно быть 2:

  • вводим верный айдишник, проверяем, что валидация прошла
  • вводим неверный (иншалла) айдишник, проверяем, что появились сообщения о некорректности айдишника
1 симпатия