Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Определить исчезла ли форма или нет при нажатии кнопки "Отмена"?

page-object
selenium
python
webdriver
Теги: #<Tag:0x00007f7b64b655f8> #<Tag:0x00007f7b64b65418> #<Tag:0x00007f7b64b65210> #<Tag:0x00007f7b64b650a8>

(Дмитрий Золкин) #1

Подскажите пожалуйста в чем не правильно использование. В классе MainPage создал метод :

def is_form_close(locator)
 return EC.invisibility_of_element_located(locator)

В тесте хочу написать следующее:

def test_check_form_close:
 main_page = MainPage()
 main_page.click_button(Locator.button_save)
 assert main_page.is_form_close(Locator("здесь локатор элемента,который исчезает" )) == True

Хочу проверить что форма закрылась.
Почему метод никогда не возвращает True??
Возвращается все равно элемент из метода…Закрыта форма или открыта все равно…


(Дмитрий Золкин) #2

Все мне подсказали, что надо было писать так

def is_form_close(locator):
try:
var = WebdriverWait(self.driver, 3).until(EC.invisibiliti_of_element_located(locator))
return var
except TimeoutExciption:
return False


(kixiro) #3

Думаю, что лучше решить эту задачу в два действия.

  1. найти элемент, который точно будет на странице и появится в любом случае позже чем проверяемый элемент.
  2. в конструкции try except искать исчезнувший элемент с минимальным ожиданием.
    Если искать сразу и таких проверок много по тестам, то при определении длинного таймаута тесты будут делаться долго, а при снижении, можно не дождаться окончательной загрузки страницы.