GreyCrew
@GreyCrew
Full-stack developer

Есть ли в селениуме метод, который бы ожидал появление на странице определенного компонента?

Нашел старую репу фирмы, которая тестит наш проект.

Тесты на селениуме + python + behave

В сценариях вижу следующие конструкции:
@step(u'заполняет данные сотрудника')
def enter_user_data(context, surname, name, father_name, position, city, email, mphone):
    WebDriverWait(context.browser, 10).until(EC.presence_of_element_located((By.XPATH, context.mapping["фамилия"]))).send_keys(surname)
    context.browser.find_element_by_xpath(context.mapping["логин"]).send_keys(context.login)
    time.sleep(5)
    context.browser.find_element_by_xpath("//div[@class='Select-menu-outer']").click() 
    context.browser.find_element_by_xpath(context.mapping["город"]).send_keys(city)
    time.sleep(5) 
    context.browser.find_element_by_xpath("//div[@class='Select-menu-outer']").click()
    context.browser.find_element_by_xpath(context.mapping["checkbox"]).click()


Мне не нравятся слипы.
Есть ли в селениуме метод, который бы ожидал появление на странице определенного компонента?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
glaphire
@glaphire
PHP developer
В селениуме есть способ явного ожидания элемента (explicit wait), я писала не на питоне, но эта статья должна помочь (ссылка)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SvinkaBacilka
@SvinkaBacilka
личинка front-end Developer-а
Используйте Explicit Waits и Implicit Waits в связке, так ваши тесты будут гораздо стабильные.
Так же не лишним будет установить время загрузки страницы
driver.set_page_load_timeout(60)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы