Не нажимается кнопка на сайте python selenium

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

Хочу парсить появляющиеся слоты для подачи заявки на визу на этом сайте Мой код проходит авторизацию и рекапчу, а после попадает на страницу такого вида: Та самая оранжевая кнопка Задача: Нажать на кнопку "Записаться на приём", чтобы пройти дальше. Я пробовал скроллить страницу, наводил курсор, проверял находит ли её вообще selenium, кликал через паузу, но она не поддалась. Вот весь код, метод для нажатия кнопки называется _choose_visa

import undetected_chromedriver
from fake_useragent import UserAgent
from selenium.webdriver.common.keys import Keys
from selenium_recaptcha_solver import RecaptchaSolver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver import ActionChains

import time

from auth_data import password, login


class SlotBot:

    def __init__(self):
        self.options = undetected_chromedriver.ChromeOptions()

        self.user = UserAgent()
        self.options.add_argument(f'user-agent={self.user.random}')
        self.options.add_argument(f'--proxy-server=46.8.248.30:9267')

        self.driver = undetected_chromedriver.Chrome(
            driver_executable_path=r'C:\Users\Flusion\PycharmProjects\Parser\chromebrowser',
            options=self.options
        )

    def _get_url(self):
        self.driver.get('https://visa.vfsglobal.com/rus/ru/fra/login')

    def _solve_captcha(self):
        WebDriverWait(self.driver, 20).until(EC.presence_of_element_located((By.XPATH, '//iframe[@title="reCAPTCHA"]')))
        recaptcha_iframe = self.driver.find_element(By.XPATH, '//iframe[@title="reCAPTCHA"]')
        solver = RecaptchaSolver(driver=self.driver)
        solver.click_recaptcha_v2(iframe=recaptcha_iframe)

    def _insert_data(self):
        email_input = self.driver.find_element(By.ID, "mat-input-0")
        email_input.clear()
        email_input.send_keys(login)
        time.sleep(2)

        password_input = self.driver.find_element(By.ID, "mat-input-1")
        password_input.clear()
        password_input.send_keys(password)
        time.sleep(1)
        password_input.send_keys(Keys.ENTER)

    def _choose_visa(self) -> None:
        next_btn = self.driver.find_element(By.XPATH,
                                            '//button[@class="mat-focus-indicator btn mat-btn-lg btn-block btn-brand-orange mat-raised-button mat-button-base"]')
        self.driver.execute_script("arguments[0].scrollIntoView(true);", next_btn)
        ActionChains(self.driver).move_to_element(next_btn).click(next_btn).perform()

    def check(self):
        self._get_url()
        time.sleep(2)
        self.driver.fullscreen_window()

        original_window = self.driver.current_window_handle
        assert len(self.driver.window_handles) == 1
        time.sleep(15)

        self._solve_captcha()
        time.sleep(2)
        self._insert_data()
        time.sleep(15)
        
        for window_handle in self.driver.window_handles:
            if window_handle != original_window:
                self.driver.switch_to.window(window_handle)
                break
        WebDriverWait(self.driver, 20).until(EC.title_is("SeleniumHQ Browser Automation"))

        self._choose_visa()


if __name__ == '__main__':
    try:
        SlotBot().check()
        time.sleep(500)
    except Exception as error:
        print(error)

Код страницы с кнопкой

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="color-scheme" content="light dark">
</head>

<body>
    <div class="line-gutter-backdrop"></div>
    <form autocomplete="off"><label class="line-wrap-control">Переносить строки<input type="checkbox"
                aria-label="Переносить строки"></label></form>
    <table class="line-wrap">
        <tbody>
            <tr>
                <td class="line-number" value="1"></td>
                <td class="line-content"><span class="html-doctype">&lt;!doctypehtml&gt;</span><span
                        class="html-tag">&lt;html <span class="html-attribute-name">lang</span>="<span
                            class="html-attribute-value">en</span>"&gt;</span><span class="html-tag">&lt;link <span
                            class="html-attribute-name">rel</span>="<span
                            class="html-attribute-value">preconnect</span>" <span
                            class="html-attribute-name">href</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank" href="https://fonts.gstatic.com/"
                            rel="noreferrer noopener">https://fonts.gstatic.com</a>" <span
                            class="html-attribute-name">crossorigin</span>=""&gt;</span><span class="html-tag">&lt;meta
                        <span class="html-attribute-name">charset</span>="<span
                            class="html-attribute-value">utf-8</span>"&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">http-equiv</span>="<span
                            class="html-attribute-value">X-UA-Compatible</span>" <span
                            class="html-attribute-name">content</span>="<span
                            class="html-attribute-value">IE=edge</span>"&gt;</span><span
                        class="html-tag">&lt;title&gt;</span><span class="html-tag">&lt;/title&gt;</span><span
                        class="html-tag">&lt;base <span class="html-attribute-name">href</span><!--<base href="/">-->
                        <base href=".">="<a class="html-attribute-value html-resource-link" target="_blank"
                            href="https://visa.vfsglobal.com/" rel="noreferrer noopener">/</a>"&gt;
                    </span><span class="html-tag">&lt;meta <span class="html-attribute-name">name</span>="<span
                            class="html-attribute-value">description</span>" <span
                            class="html-attribute-name">content</span>="<span class="html-attribute-value">VFS
                            Global</span>"&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">name</span>="<span class="html-attribute-value">keywords</span>"
                        <span class="html-attribute-name">content</span>="<span class="html-attribute-value">Travel,
                            Tourism</span>"&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">name</span>="<span class="html-attribute-value">author</span>"
                        <span class="html-attribute-name">content</span>="<span class="html-attribute-value">VFS
                            Global</span>"&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">http-equiv</span>="<span
                            class="html-attribute-value">Cache-Control</span>" <span
                            class="html-attribute-name">content</span>="<span class="html-attribute-value">no-cache,
                            no-store, must-revalidate</span>"&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">http-equiv</span>="<span
                            class="html-attribute-value">Pragma</span>" <span
                            class="html-attribute-name">content</span>="<span
                            class="html-attribute-value">no-cache</span>"&gt;</span><span class="html-tag">&lt;meta
                        <span class="html-attribute-name">http-equiv</span>="<span
                            class="html-attribute-value">Expires</span>" <span
                            class="html-attribute-name">content</span>="<span
                            class="html-attribute-value">0</span>"&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">name</span>="<span class="html-attribute-value">viewport</span>"
                        <span class="html-attribute-name">content</span>="<span
                            class="html-attribute-value">width=device-width,initial-scale=1</span>"&gt;</span><span
                        class="html-tag">&lt;meta <span class="html-attribute-name">name</span>="<span
                            class="html-attribute-value">theme-color</span>" <span
                            class="html-attribute-name">content</span>="<span
                            class="html-attribute-value">#142f5d</span>"&gt;</span><span class="html-tag">&lt;link <span
                            class="html-attribute-name">rel</span>="<span
                            class="html-attribute-value">apple-touch-icon</span>" <span
                            class="html-attribute-name">href</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/assets/images/global/vfs.ico"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/assets/images/global/vfs.ico</a>"&gt;</span><span
                        class="html-tag">&lt;link <span class="html-attribute-name">rel</span>="<span
                            class="html-attribute-value">icon</span>" <span
                            class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">image/x-icon</span>" <span
                            class="html-attribute-name">sizes</span>="<span class="html-attribute-value">16x16</span>"
                        <span class="html-attribute-name">href</span>="<a
                            class="html-attribute-value html-resource-link" target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/assets/images/global/vfs.ico"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/assets/images/global/vfs.ico</a>"&gt;</span><span
                        class="html-tag">&lt;link <span class="html-attribute-name">rel</span>="<span
                            class="html-attribute-value">stylesheet</span>" <span
                            class="html-attribute-name">type</span>="<span class="html-attribute-value">text/css</span>"
                        <span class="html-attribute-name">href</span>="<a
                            class="html-attribute-value html-resource-link" target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/assets/font-awesome-4.7.0/css/font-awesome.min.css"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/assets/font-awesome-4.7.0/css/font-awesome.min.css</a>"&gt;</span><span
                        class="html-tag">&lt;style <span class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">text/css</span>"&gt;</span>@font-face{font-family:'Material
                    Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v140/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2)
                    format('woff2');}.material-icons{font-family:'Material
                    Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}<span
                        class="html-tag">&lt;/style&gt;</span><span class="html-tag">&lt;meta <span
                            class="html-attribute-name">name</span>="<span
                            class="html-attribute-value">theme-color</span>" <span
                            class="html-attribute-name">content</span>="<span
                            class="html-attribute-value">#1976d2</span>"&gt;</span><span
                        class="html-tag">&lt;style&gt;</span>.loader-box {</td>
            </tr>
            <tr>
                <td class="line-number" value="2"></td>
                <td class="line-content"> position: fixed;</td>
            </tr>
            <tr>
                <td class="line-number" value="3"></td>
                <td class="line-content"> top: 0;</td>
            </tr>
            <tr>
                <td class="line-number" value="4"></td>
                <td class="line-content"> right: 0;</td>
            </tr>
            <tr>
                <td class="line-number" value="5"></td>
                <td class="line-content"> bottom: 0;</td>
            </tr>
            <tr>
                <td class="line-number" value="6"></td>
                <td class="line-content"> left: 0;</td>
            </tr>
            <tr>
                <td class="line-number" value="7"></td>
                <td class="line-content"> background-color: #ebebeb;</td>
            </tr>
            <tr>
                <td class="line-number" value="8"></td>
                <td class="line-content"> z-index: 1090;</td>
            </tr>
            <tr>
                <td class="line-number" value="9"></td>
                <td class="line-content"> }</td>
            </tr>
            <tr>
                <td class="line-number" value="10"></td>
                <td class="line-content"> .loader-box-inner {</td>
            </tr>
            <tr>
                <td class="line-number" value="11"></td>
                <td class="line-content"> margin: auto;</td>
            </tr>
            <tr>
                <td class="line-number" value="12"></td>
                <td class="line-content"> position: absolute;</td>
            </tr>
            <tr>
                <td class="line-number" value="13"></td>
                <td class="line-content"> top: 50%;</td>
            </tr>
            <tr>
                <td class="line-number" value="14"></td>
                <td class="line-content"> right: auto;</td>
            </tr>
            <tr>
                <td class="line-number" value="15"></td>
                <td class="line-content"> bottom: auto;</td>
            </tr>
            <tr>
                <td class="line-number" value="16"></td>
                <td class="line-content"> left: 50%;</td>
            </tr>
            <tr>
                <td class="line-number" value="17"></td>
                <td class="line-content"> transform: translate(-50%, -50%);</td>
            </tr>
            <tr>
                <td class="line-number" value="18"></td>
                <td class="line-content"> }<span class="html-tag">&lt;/style&gt;</span><span
                        class="html-tag">&lt;style&gt;</span>:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe
                    UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color
                    Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color
                    Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier
                    New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe
                    UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,"Apple Color Emoji","Segoe UI
                    Emoji",Segoe UI Symbol,"Noto Color
                    Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}img{vertical-align:middle;border-style:none}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.min-vh-100{min-height:100vh!important}@media
                    print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}img{page-break-inside:avoid}@page{size:a3}body{min-width:992px!important}}@font-face{font-family:Inter-UI-400;font-style:normal;font-weight:400;src:url(https://liftassets.vfsglobal.com/_angular/assets/styles/css/fonts/Inter-UI-400.woff);font-display:swap}html,body{position:relative;margin:0;padding:0;height:100%!important;background-color:#fff}body{position:relative;font-family:Inter-UI-400;color:#000;font-size:16px;font-weight:400;line-height:1.42857}<span
                        class="html-tag">&lt;/style&gt;</span><span class="html-tag">&lt;script <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://visa.vfsglobal.com/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js"
                            rel="noreferrer noopener">/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js</a>"
                        <span class="html-attribute-name">data-cf-settings</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-|49</span>"&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-tag">&lt;link <span
                            class="html-attribute-name">rel</span>="<span
                            class="html-attribute-value">stylesheet</span>" <span
                            class="html-attribute-name">href</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/styles.9d5be13d9aa41911.css?v=6.0.42"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/styles.9d5be13d9aa41911.css?v=6.0.42</a>"
                        <span class="html-attribute-name">crossorigin</span>="<span
                            class="html-attribute-value">anonymous</span>" <span
                            class="html-attribute-name">media</span>="<span class="html-attribute-value">print</span>"
                        <span class="html-attribute-name">onload</span>="<span
                            class="html-attribute-value">this.media='all'</span>"&gt;</span><span
                        class="html-tag">&lt;noscript&gt;</span>&lt;link
                    rel="stylesheet"href="https://liftassets.vfsglobal.com/_angular/styles.9d5be13d9aa41911.css"&gt;<span
                        class="html-tag">&lt;/noscript&gt;</span><span class="html-tag">&lt;div <span
                            class="html-attribute-name">id</span>="<span class="html-attribute-value">loader</span>"
                        <span class="html-attribute-name">class</span>="<span
                            class="html-attribute-value">loader-box</span>"&gt;</span><span class="html-tag">&lt;img
                        <span class="html-attribute-name">class</span>="<span
                            class="html-attribute-value">loader-box-inner</span>" <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/assets/images/global/loader.gif"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/assets/images/global/loader.gif</a>"
                        <span class="html-attribute-name">alt</span>="<span
                            class="html-attribute-value">loader</span>"&gt;</span><span
                        class="html-tag">&lt;/div&gt;</span><span class="html-tag">&lt;app-root <span
                            class="html-attribute-name">class</span>="<span class="html-attribute-value">d-flex
                            flex-column min-vh-100</span>"&gt;</span><span
                        class="html-tag">&lt;/app-root&gt;</span><span class="html-tag">&lt;noscript&gt;</span>This
                    website requires JavaScript<span class="html-tag">&lt;/noscript&gt;</span><span
                        class="html-tag">&lt;script <span class="html-attribute-name">src</span>="<a
                            class="html-attribute-value html-resource-link" target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/runtime.76ad4eb3267f40e6.js?v=6.0.42"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/runtime.76ad4eb3267f40e6.js?v=6.0.42</a>"
                        <span class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-module</span>" <span
                            class="html-attribute-name">crossorigin</span>="<span
                            class="html-attribute-value">anonymous</span>"&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-tag">&lt;script <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/polyfills.4ea631c48b64b161.js?v=6.0.42"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/polyfills.4ea631c48b64b161.js?v=6.0.42</a>"
                        <span class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-module</span>" <span
                            class="html-attribute-name">crossorigin</span>="<span
                            class="html-attribute-value">anonymous</span>"&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-tag">&lt;script <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/scripts.f2dce36313fd5de6.js?v=6.0.42"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/scripts.f2dce36313fd5de6.js?v=6.0.42</a>"
                        <span class="html-attribute-name">defer</span>="<span class="html-attribute-value">defer</span>"
                        <span class="html-attribute-name">crossorigin</span>="<span
                            class="html-attribute-value">anonymous</span>" <span
                            class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-text/javascript</span>"&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-tag">&lt;script <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/vendor.922df4b8d3d496cd.js?v=6.0.42"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/vendor.922df4b8d3d496cd.js?v=6.0.42</a>"
                        <span class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-module</span>" <span
                            class="html-attribute-name">crossorigin</span>="<span
                            class="html-attribute-value">anonymous</span>"&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-tag">&lt;script <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://liftassets.vfsglobal.com/_angular/main.5f6c186316e7d580.js?v=6.0.42"
                            rel="noreferrer noopener">https://liftassets.vfsglobal.com/_angular/main.5f6c186316e7d580.js?v=6.0.42</a>"
                        <span class="html-attribute-name">type</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-module</span>" <span
                            class="html-attribute-name">crossorigin</span>="<span
                            class="html-attribute-value">anonymous</span>"&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-tag">&lt;script <span
                            class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link"
                            target="_blank"
                            href="https://visa.vfsglobal.com/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js"
                            rel="noreferrer noopener">/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js</a>"
                        <span class="html-attribute-name">data-cf-settings</span>="<span
                            class="html-attribute-value">aa146143c68b1af3912556b2-|49</span>" <span
                            class="html-attribute-name">defer</span>=""&gt;</span><span
                        class="html-tag">&lt;/script&gt;</span><span class="html-end-of-file"></span></td>
            </tr>
        </tbody>
    </table>
</body>

</html>

Ответы

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