привет
пиши на русском
import logging import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys # Настроим логирование без штампа времени! Внимание вход через Safari должен быть предварительно выполнен по ссылке https://yandex.ru/sprav/40648170/edit/posts logging.basicConfig(level=logging.INFO, format='%(message)s') # Список ссылок для обработки urls = [ "https://yandex.ru/sprav/40648170/edit/posts", # Добавьте сюда остальные ссылки, если необходимо ] # Ваши учетные данные login = "giska.manager@yandex.ru" password = ",tkjdf2024" # Инициализация драйвера с использованием Safari driver = None def click_element_with_action_chains(driver, by, value, retries=3, delay=2): """ Пытается кликнуть на элемент с использованием ActionChains (прямое физическое взаимодействие). :param driver: WebDriver :param by: Метод поиска элемента (By.CSS_SELECTOR, By.CLASS_NAME и т.д.) :param value: Значение для поиска элемента :param retries: Количество попыток :param delay: Задержка между попытками """ attempt = 0 while attempt < retries: try: # Ищем элемент на странице element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((by, value)) ) # Прокручиваем к элементу actions = ActionChains(driver) actions.move_to_element(element).perform() time.sleep(1) # Пытаемся кликнуть с помощью ActionChains actions.click(element).perform() logging.info(f"Успешный клик на элемент: {value} с использованием ActionChains.") return except Exception as e: logging.warning(f"Попытка {attempt + 1} не удалась: {e}. Повторная попытка через {delay} секунд...") attempt += 1 time.sleep(delay) logging.error(f"Не удалось нажать на элемент: {value} после {retries} попыток.") try: # Инициализация драйвера с настройками для блокировки контента options = webdriver.SafariOptions() options.add_argument("--disable-images") # Отключает загрузку изображений options.add_argument("--disable-extensions") # Отключает расширения options.add_argument("--disable-popup-blocking") # Отключает блокировку всплывающих окон options.add_argument("--disable-notifications") # Отключает уведомления options.add_argument("--disable-application-cache") # Отключает кэширование приложений options.add_argument("--disable-blink-features=AutomationControlled") # Отключает автоматизацию driver = webdriver.Safari(options=options) while urls: url = urls.pop(0) # Берем первую ссылку из списка и удаляем её # Открываем страницу logging.info(f"Открываем страницу: {url}") driver.get(url) # Добавляем таймаут в 3 секунды после загрузки страницы logging.info("Ожидаем 3 секунды после загрузки страницы...") time.sleep(3) # Вводим логин logging.info("Ищем поле для ввода логина...") login_field = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="login"]')) ) login_field.send_keys(login) # Нажимаем на кнопку "Продолжить" после ввода логина logging.info("Ищем кнопку 'Продолжить' для нажатия...") click_element_with_action_chains(driver, By.CSS_SELECTOR, 'button#passp\\:sign-in') # Добавляем таймаут в 3 секунды после нажатия logging.info("Ожидаем 3 секунды после нажатия кнопки 'Продолжить'...") time.sleep(3) # Вводим пароль logging.info("Ищем поле для ввода пароля...") password_field = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="passwd"]')) ) password_field.send_keys(password) # Нажимаем Enter после ввода пароля password_field.send_keys(Keys.RETURN) # Добавляем таймаут в 3 секунды после входа logging.info("Ожидаем 3 секунды после входа...") time.sleep(3) # Находим текстовое поле и вводим текст "привет!" logging.info("Ищем текстовое поле для ввода текста...") textarea = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, 'textarea.Textarea-Control')) ) # Вводим текст "привет!" textarea.send_keys("привет!") logging.info("Текст 'привет!' успешно введен в текстовое поле.") # Добавляем задержку, чтобы увидеть результат time.sleep(5) except Exception as e: logging.error(f"Ошибка: {e}") finally: # Не закрываем браузер logging.info("Скрипт завершен. Браузер останется открытым.")
не добавляется текст Привет в поле почему
напиши исправленный код с другим подходом вставки слова
вот код в нем логи пишут что скрипт пытается вставить пароль а это не нужно. и скрипт прекращает работу до вставки слова привет! хотя страница открывается
remove_password,
(base) ivanzaharov@MacBook-Air-Ivan ~ % /usr/local/bin/python3 /Users/ivanzaharov/Desktop/BIG_Packet_script/ParserMAP_Yand/Yandex_map_pytap.py Открываем страницу: https://yandex.ru/sprav/40648170/edit/posts Ожидаем 3 секунды после загрузки страницы... Ищем поле для ввода логина... Ищем поле для ввода пароля... Ошибка: Message: Скрипт завершен. Браузер останется открытым. (base) ivanzaharov@MacBook-Air-Ivan ~ %
Ищем поле для ввода пароля... Ошибка: Message: Скрипт завершен. Браузер останется открытым. (base). Искать пароль не нужно

Questions similaires

Related questions