Скрипт не может ввести логин и пароль в стим

Это автоматический логин на сайте через стим через OAuth. По идее, открывается страница -> по XPATH ищутся поля ввода -> прокликиваются и вводятся значения. Проблема в том, что я не понимаю, почему именно так происходит и на каком моменте (локализация или набор) скрипт встаёт и не может ничего сделать. Даже отключил --headless, но всё равно не смог выяснить причину такого поведения программы.

def get_driver(proxy=None):
    options = uc.ChromeOptions()
    # options.add_argument("--headless")
    options.add_argument("--disable-gpu")
    options.add_argument("--window-size=1920,1080")
    options.add_argument("--no-sandbox")
    options.add_argument("--disable-dev-shm-usage")

    # Chromium path
    options.binary_location = f"{BASE_DIR}/Utility/browser/bin/chrome.exe"

    if proxy:
        options.add_argument(f'--proxy-server={proxy}')

    driver = uc.Chrome(options=options)
    driver.set_page_load_timeout(10)
    return driver


def extract_cookies(driver):
    return driver.get_cookies()  # Cookie Lists


def set_input_js(driver, xpath, text):
    input_el = WebDriverWait(driver, 10).until(
        ec.presence_of_element_located((By.XPATH, xpath))
    )
    driver.execute_script("""
        arguments[0].value = arguments[1];
        arguments[0].dispatchEvent(new Event('input', { bubbles: true }));
        arguments[0].dispatchEvent(new Event('change', { bubbles: true }));
    """, input_el, text)


def steam_login(driver, login, password, shared_secret):
    try:
        logging.info(f"? Открываю страницу авторизации Steam для {login}...")
        driver.get("https://auth.cybershoke.net/steam")

        # Ждём появления поля логина
        WebDriverWait(driver, 10).until(
            ec.presence_of_element_located((By.XPATH, "/html/body/div[1]/div[7]/div[4]/div[1]/div[1]/div/div/div/div[2]/div[2]/form/div[1]/input"))
        )

        # Ввод логина через JS
        set_input_js(driver, "/html/body/div[1]/div[7]/div[4]/div[1]/div[1]/div/div/div/div[2]/div[2]/form/div[1]/input", login)
        time.sleep(0.3)

        # Ввод пароля через JS
        set_input_js(driver, "/html/body/div[1]/div[7]/div[4]/div[1]/div[1]/div/div/div/div[2]/div[2]/form/div[2]/input", password)
        time.sleep(0.3)

        # Нажимаем Enter
        password_input = WebDriverWait(driver, 30).until(
            ec.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div[7]/div[4]/div[1]/div[1]/div/div/div/div[2]/div[2]/form/div[2]/input"))
        )
        password_input.send_keys(Keys.RETURN)

В каком месте эта ошибка появляется, может, мне стоит использовать другие библиотеки?


Ответы (0 шт):