Python/selenium. Не получается построить корректную логику автотеста
Всем привет! Сегодня моя проблема в том, что я не могу получить стабильный результат при прогоне автотеста с авторизацией, иногда авторизация проходит, а иногда система понимает, что я робот! если у вас есть решения данной проблемы было бы здорово их послушать. У меня есть код:
class MoveToAccount(BasePage):
account_locators = Logout
# клик по кнопке "войти" на главной странице
@allure.step('Клик по кнопке войти на главной странице')
def click_button_account(self):
self.elements_is_clickable(self.account_locators.BTN_ENTER).click()
# клик по кнопке "у меня есть пароль"
@allure.step('Клик по кнопке "у меня есть пароль"')
def click_on_button_u_menya_est_parol(self):
self.element_is_visible(self.account_locators.BTN_I_HAVE_PASSORD, 40).click()
# метод для ввода пароля
@allure.step('ввод почты')
def enter_email(self, email):
self.element_is_visible(self.account_locators.FIELD_EMAIL_OR_NUMBER).send_keys(email)
# ввод пароля при авторизации
@allure.step('ввод пароля')
def enter_password(self, password):
self.element_is_visible(self.account_locators.FIELD_PASSWORD).send_keys(password)
# клик по кнопке вход на модалке авторизации
@allure.step('Клик по кнопке "вход"')
def click_btn_enter(self):
self.elements_is_clickable(self.account_locators.BTN_VHOD).click()
# получаем имя пользователя из хэдера
@allure.step('Проверка что после авторизации в хэдере есть имя юзера')
def get_name_of_user(self):
return self.element_is_visible(self.account_locators.HEAD_NAME_OF_USER).text
# Клик по кнопке входа после наведения мышки
@allure.step('Клик по кнопке входа после наведения мышки')
def click_enter_with_mouse(self):
return self.rat_race(self.elements_is_clickable(self.account_locators.BTN_VHOD))
# @allure.title('Проверка авторизации валидного юзера')
# @allure.description('Вход в аккаунт с валидными данными')
def login_account(self, valid_user):
self.click_button_account()
self.click_on_button_u_menya_est_parol()
self.enter_email(valid_user.email)
self.enter_password(valid_user.password)
time.sleep(10)
self.click_enter_with_mouse()
assert self.element_is_visible(
self.account_locators.HEAD_NAME_OF_USER,40).text == valid_user.name or self.element_is_visible(
self.account_locators.HEAD_YOU_LIKE_ROBOT,40).text == "Похоже, что Вы робот!"
После запуска подобного кода я жду что система авторизует меня, но к сожалению она иногда обзывается роботом и не пускает дальше. Есть ли у вас советы как можно улучшить этот код и сделать его более "натуральным" что бы система воспринимала действия как действия живого человека?
Источник: Stack Overflow на русском