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()


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

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

Войти через центр авторизации
Похожие вопросы
IT HUNT Москва
от 180 000 до 250 000 ₽
Acme Crypto Corp Нижний Новгород
от 90 000 до 150 000 ₽
09 апр. 2020, в 01:55
1500 руб./за проект
09 апр. 2020, в 01:27
1000 руб./за проект
08 апр. 2020, в 22:52
5000 руб./за проект