Перейти к содержимому

Школа тест-менеджеров v. 2.0
онлайн, начало 16 октября
Школа для начинающих тестировщиков
онлайн, начало 17 октября
Python для начинающих
онлайн, начало 16 октября
Организация автоматизированного тестирования
онлайн, начало 18 октября
Фотография

Selenium. Chromedriver. user-data-dir. Java. Как хранить Cookies?

Selenium Chromedriver user-data-dir Java

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 sapr71

sapr71

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Петров Алексей Петрович

Отправлено 22 Июнь 2019 - 01:31

Версия chrome: Версия 75.0.3770.100 (Официальная сборка), (64 бит)

 

Работаю с Chromedriver Headless. Мне нужно хранить где-то куки, что бы после закрытия браузера они не терялись. Пробовал использовать chrome с параметром user-data-dir. Все вроде нормально, создает файлы с настройками и куками в указанной папке и пока сервер работает он берет оттуда куки и записывает их. Но после перезагрузки драйвера он перезаписывает файлы и уже не видит старые куки и создает новые. 

 

 

 

Для проверки создал на локальном сервере вот такой скрипт ( http://test-cookies.local/test.php )

<?php setcookie ("TestCookie", 'COOKIES',time()+3600); ?>
<title>КУКИ : <?php print $_COOKIE['TestCookie']; ?> </title>

Выполняю в selenium (java) вот такой код и вижу что куки он не загружает после перезагрузки

System.setProperty("webdriver.chrome.driver", "drivers\\chromedriver.exe");

ChromeOptions options = new ChromeOptions();

options.addArguments("--user-data-dir=c:\\Users\\lexa\\IdeaProjects\\project\\user1\\");

options.setHeadless(true);

WebDriver driver = new ChromeDriver(options);

driver.get("http://test-cookies.local/test.php");

System.out.println(driver.getTitle());

driver.quit();

Подскажите, может есть какие-нибудь другие решения, что бы куки сохранялись или может я что то не так делаю?

 

 

 

 


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 626 сообщений


Отправлено 22 Июнь 2019 - 08:29

Для работы с куками есть специальные методы:

https://seleniumhq.g...er.Options.html


  • 0

#3 sapr71

sapr71

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Петров Алексей Петрович

Отправлено 22 Июнь 2019 - 15:48

Для работы с куками есть специальные методы:

https://seleniumhq.g...er.Options.html

 

Это да, но тогда появляется еще вопрос

 

Как Set<Cookieконвертировать в String?

 

Подскажи как с этим быть:

 

Объявляю переменную Set<Cookie> temp1 и присваиваю ей значение текущих cookie.

//Блок-1

Set<Cookie> temp1;
temp1 = driver.manage().getCookies();

После чего мне нужно сохранить эту информацию в файл, что бы потом в определенный момент я мог ее считать из файла.

//Блок-2

//Сохранение переменной temp1 в файл

//Загрузка в переменную temp2 информации из файла

Объявляю переменную Set<Cookie> temp2 в которую надо считать информацию из файла и после чего задать значение cookie из нее.

//Блок-3

Set<Cookie> temp2;
driver.manage().addCookie(temp2);

Интересует именно Блок-2. Подскажите как сделать. Или как конвертировать Set<Cookie> в String?


  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 626 сообщений


Отправлено 22 Июнь 2019 - 16:13

Этот вопрос вообще-то относится уже к общим вопросом работы с коллекциями в Джаве. Гугл или Яндекс вам должен помочь лучше и быстрее.

        Set<Cookie> lala = driver.manage().getCookies();       
        System.out.println("\n"+ lala.size());
        
        while ( lala.iterator().hasNext() ) {
            Cookie llll = lala.iterator().next();
            System.out.println("\n" + llll.toString());
            System.out.println("Name = " + llll.getName() + ", Value = " + llll.getValue());
            lala.remove(llll);
        }

  • 0

#5 sapr71

sapr71

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Петров Алексей Петрович

Отправлено 26 Июнь 2019 - 06:04

Версия chrome: Версия 75.0.3770.100 (Официальная сборка), (64 бит)

 

Работаю с Chromedriver Headless. Мне нужно хранить где-то куки, что бы после закрытия браузера они не терялись. Пробовал использовать chrome с параметром user-data-dir. Все вроде нормально, создает файлы с настройками и куками в указанной папке и пока сервер работает он берет оттуда куки и записывает их. Но после перезагрузки драйвера он перезаписывает файлы и уже не видит старые куки и создает новые. 

 

 

 

Для проверки создал на локальном сервере вот такой скрипт ( http://test-cookies.local/test.php )

<?php setcookie ("TestCookie", 'COOKIES',time()+3600); ?>
<title>КУКИ : <?php print $_COOKIE['TestCookie']; ?> </title>

Выполняю в selenium (java) вот такой код и вижу что куки он не загружает после перезагрузки

System.setProperty("webdriver.chrome.driver", "drivers\\chromedriver.exe");

ChromeOptions options = new ChromeOptions();

options.addArguments("--user-data-dir=c:\\Users\\lexa\\IdeaProjects\\project\\user1\\");

options.setHeadless(true);

WebDriver driver = new ChromeDriver(options);

driver.get("http://test-cookies.local/test.php");

System.out.println(driver.getTitle());

driver.quit();

Подскажите, может есть какие-нибудь другие решения, что бы куки сохранялись или может я что то не так делаю?

 

Так а почему вот этот код то не работает????


  • 0

#6 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 374 сообщений
  • Город:Н.Новгород

Отправлено 26 Июнь 2019 - 09:15


Так а почему вот этот код то не работает????

 

Так а где в этом коде собственно сохранение и восстановление куки, то есть "Блок-2"?


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами Selenium, Chromedriver, user-data-dir, Java

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале