Ответы пользователя по тегу Selenium
  • Как передать фалы cookie при открытии браузера в Selenium?

    @DenisShahbazyan
    Примерно так, у меня с логгером, но думаю разберешься.
    def get_cookies(d: WebDriver) -> WebDriver:
        """Сохранение или получение cookies.
        """
        COOKIES_DIR.mkdir(exist_ok=True)
    
        if path.exists(COOKIES_FILE):
            d.get(URL)
            with open(COOKIES_FILE, 'rb') as file:
                for cookie in pickle.load(file):
                    d.add_cookie(cookie)
                d.refresh()
                logger.info('Cookies добавлены к драйверу.')
                return d
    
        d.get(URL + URL_LOGIN)
        _wait(d, By.XPATH, login_by_password)
    
        d.find_element(By.XPATH, login_by_password).click()
        _wait(d, By.XPATH, login_input_username)
    
        d.find_element(By.XPATH, login_input_username).send_keys(LOGIN)
        d.find_element(By.XPATH, login_input_password).send_keys(PASSWORD)
        d.find_element(By.XPATH, login_submit).click()
        _wait(d, By.XPATH, mainmenu_my_resumes)
    
        if _wait(d, By.XPATH, account_login_error):
            raise LoginOrPasswordErrorException
    
        with open(COOKIES_FILE, 'wb') as file:
            pickle.dump(d.get_cookies(), file)
            logger.info('Cookies записаны в файл.')
    
        return d
    Ответ написан
    Комментировать
  • Загружает Cookie, и вылетает, в чем проблема?

    @DenisShahbazyan
    Записывать куки в файл лучше с помощью контекстного менеджера.

    1. Заходим на сайт.
    2. Входим в свою учетку.
    3. Записываем куки в файл.
    with open(COOKIES_FILE, 'wb') as file:
            pickle.dump(driver.get_cookies(), file)


    Чтобы достать и использовать сохраненные куки:
    1. Проверь, есть ли вообще у тебя файл с куками.
    2. Перейди на сайт, на который нужно войти с помощью кук.
    3. Забирай куки тоже с помощью контекстного менеджера.
    4. Применяем куки к драйверу.
    5. Обновляем страницу.
    if path.exists(COOKIES_FILE):
            driver.get(URL)
            with open(COOKIES_FILE, 'rb') as file:
                for cookie in pickle.load(file):
                    driver.add_cookie(cookie)
                driver.refresh()
    Ответ написан
    Комментировать