@AlexMine
Учусь

Selenium при использовании явных ожиданий каждый блок нужно оборачивать в try/except?

Разбираюсь с selenium в python, возник вопрос если мне нужно выполнить на сайте какую либо последовательность действий, например такую

try:
    login_button = WebDriverWait(self.driver, 30).until(
        EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/div/div[2]/div/a[2]'))
     )
    login_button.click()
    email_input = WebDriverWait(self.driver, 30).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="react_0HLTHC0T8P198"]/div/div[2]/div/form/div[1]/input[1]'))
    )
    email_input.send_keys(account_dict['email'])
except:
    print(traceback.format_exc())

При таком коде, выдает TimeException на email_input, хотя код с login_button не выполнился, если я каждое ожидание WebDriverWait выношу в свой try:except, то выполняется правильно, нейжели мне каждый поиск элемента на странице нужно оформлять в try/except?
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
/*[1]//*[2]//*[2]

вот от такого избавляйся на берегу, учись xpath правильно писать

к try except привыкай, когда не все зависит от тебя - исключения ВОЗМОЖНЫ, поэтому...
Ответ написан
@marayg
Вынесите поиск вместе с блоком try except в отдельную функцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы