Python/selenium. Не получается построить корректную логику автотеста

Рейтинг: 0Ответов: 0Опубликовано: 10.01.2023

Всем привет! Сегодня моя проблема в том, что я не могу получить стабильный результат при прогоне автотеста с авторизацией, иногда авторизация проходит, а иногда система понимает, что я робот! если у вас есть решения данной проблемы было бы здорово их послушать. У меня есть код:

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 == "Похоже, что Вы робот!"

После запуска подобного кода я жду что система авторизует меня, но к сожалению она иногда обзывается роботом и не пускает дальше. Есть ли у вас советы как можно улучшить этот код и сделать его более "натуральным" что бы система воспринимала действия как действия живого человека?

Ответы

Ответов пока нет.