Python — selenium webdriver — переход на сайт, клик по нопке, не кликает, почему?

Простой скрипт авторизации сделал на python.
Заходим на сайт https://ideogram.ai/login, находим кнопку button где текст Login, я ищу по классам, но топорно, так как там еще есть похожие классы в коде, как искать именно кнопку где есть текст Login.

65a8e694b8bde773209955.jpeg

При клике на кнопку, должно всплывать окно.
65a8e6a402d79453898891.png

Окно не всплывает, я так понимаю, клик не происходит по кнопке.

self.driver.get("https://ideogram.ai/login")
        time.sleep(10)

        auth_elem: WebElement = WebDriverWait(self.driver, 30).until(
            EC.presence_of_element_located(
                (
                    By.XPATH,
                    #"//button[text()='Login']",
                    #"//button[normalize-space()='Login']",
                    #"button[contains(text(),'Login')]",
                    "//button[starts-with(@class, 'MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium') and @type='button']",
                )
            )
        )
        auth_elem.click()

        self.driver.save_screenshot('./image.png')

        time.sleep(100)

        self.driver.save_screenshot('./image0.png')


Пытался еще по тексту искать //button[text()='Login'], но не срабатывает, может, что не так делаю.
Сохраняю скрины, чтобы понять, что происходит self.driver.save_screenshot('./image.png') и self.driver.save_screenshot('./image0.png')
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
А всплывающее окно, часом, не блокируется?

С локатором можно не мудрить: на экране всего три кнопки и первая из них та, которая вам нужна
// проверка в консоли
$$('button')[0].click()


Попробуйте откатить локатор до какого-то простого, в котором вы уверены и в дебаге прогнать скрипт.
Вероятно, всплывающее окно блокируется. Уведомление об этом должно будет в адресной строке отразиться
Ответ написан
Ваш ответ на вопрос

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

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