Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 177007|Ответ: 27

[Источник] .Net/C# автоматические тесты Selenium получают значения cookie

[Скопировать ссылку]
Опубликовано 05.07.2020 11:44:34 | | | |
Спрос

Поскольку запрос на симуляцию для входа слишком сложен, мы хотим использовать Selenium для открытия Google Chrome, чтобы получить значение cookie после входа, а затем перенести содержимое cookie, чтобы запросить соответствующий интерфейс сайта для автоматизации теста.

Селен

Selenium — это инструмент для тестирования веб-приложений. Тесты Selenium запускаются непосредственно в браузере, словно это делает реальный пользователь. Поддерживаемые браузеры включают IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera и др. Основные функции этого инструмента включают: тестирование совместимости браузеров — тестировать ваше приложение, чтобы убедиться, что оно хорошо работает на разных браузерах и операционных системах. Функциональность тестовой системы — создание регрессионных тестов для проверки функциональности программного обеспечения и требований пользователей. Он поддерживает автоматическую запись действий и автоматическую генерацию тестовых скриптов на различных языках, таких как .Net, Java, Perl и др.

Сначала давайте создадим новый консольный проект на C# с названием проекта «chrome-cookie-demo» и версией для .NET Framework — 4.7.2.

Команда nuget выглядит следующим образом:

После установки Selenium.WebDriver.ChromeDriver в каталоге отладки проекта генерируется chromedriver.exe-файл.
Selenium.WebDriver понимается как абстрактный интерфейс, и затем каждый браузер реализует этот интерфейс самостоятельно, Selenium.WebDriver вызывает Selenium.WebDriver.ChromeDriver(chromedriver.exe) chromedriver.exe запускает нативно установленный Google Chrome согласно полученным параметрам и выполняет соответствующую операцию.

Конечно, есть необходимое условие,На компьютере должен быть установлен Google Chrome

Код таков:

Ошибка следующая:


System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83



Это означает, что текущий драйвер не поддерживает версию 83 Google Chrome, проверьте установленную версию на компьютере следующим образом:


(Версия 71.0.3578.98)

Обновление вашего нативного Google Chrome и перезагрузка решат проблему (или установите версию браузера, соответствующую требованиям).

Мы пытаемся заново запустить проект Chrome-cookie-demo и выяснием, что сайт можно открыть нормально, но,Веб-страница не входит в систему。 Когда вы нажимаете на браузер, чтобы открыть этот сайт, статус входит в систему.

Решением является установка параметра user-data-dir следующим кодом:

Мы перезапускаем программу и получаем следующую ошибку:

Unhandled exception: OpenQA.Selenium.WebDriverException: invalid argument: userdata directory уже используется, пожалуйста, укажите уникальное значение для --user-data-dir argument, или не используйте -- user-data-dir
   на OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, параметры словаря'2)
   В OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   В OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   В OpenQA.Selenium.Chrome.ChromeDriver: ctor (сервис ChromeDriverService, опции ChromeOptions, команда TimeSpan Timeout)
   В OpenQA.Selenium.Chrome.ChromeDriver: ctor (сервис ChromeDriverService, опции ChromeOptions)
   В chrome_cookie_demo. Program.Main(String[] args) Location C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: строка номер 36

Грубо говоря, папка занята, пожалуйста, замените её, решение так:Закройте открытый Google Chrome и используйте папку User Data для программы «chrome-cookie-demo», которую мы написали

Получите веб-куки

driver.manage().getCookies();   Вернуть список всех печений
driver.manage().getCookieNamed(arg0);  Вернуть конкретное печенье по названию
driver.manage().addCookie(arg0);   Создайте и добавьте печенье
driver.manage().deleteCookie(arg0);  Удалить конкретный куки
driver.manage().deleteCookieNamed(arg0); Удалить конкретный куки по названию
driver.manage().deleteAllCookies();  Удалить все cookie

Документация:Вход по гиперссылке виден.

Мы тестируем, чтобы получить все веб-файлы cookie

Открытие,Вы можете прочитать информацию о файлах cookie на странице «HttpOnly», как показано на рисунке ниже:



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

Скачать исходный код:

Вход по гиперссылке виден.

(Конец)

Счёт

Количество участников1МБ+1 способствовать+1 Коллапс причина
JGSKINGSTONE + 1 + 1 Очень мощно!

Смотреть все рейтинги





Предыдущий:EF(CodeFirst) + MySQL
Следующий:Условный запрос MSSQL WHERE игнорирует это условие
Опубликовано 14.05.2022 10:22:54 |
Подсказывать:Авторы блокируются или удаляемый контент автоматически блокируется
Опубликовано 14.05.2022 10:21:26 |
Подсказывать:Авторы блокируются или удаляемый контент автоматически блокируется
Опубликовано 27.11.2021 17:31:04 |

.NET Selenium симуляция всё ещё отличная, спасибо.
Опубликовано 05.07.2020 12:46:59 |
Кажется, это хорошо
Опубликовано 18.08.2020 10:45:14 |
Обучение. Усердно учусь.
Опубликовано 10.10.2020 17:34:08 |
Приходите и учитесь, спасибо
Опубликовано 28.10.2020 17:26:20 |
Очень хорошо.  
Опубликовано 03.11.2020 0:20:29 |
Спасибо~~ Учись учиться ~~~~~~~~
Опубликовано 26.11.2020 21:26:44 |
Спасибо, LZ за то, что поделились
Опубликовано 24.01.2021 3:02:19 |
Почему нужно отвечать, чтобы увидеть это?
Опубликовано 06.03.2021 20:49:30 |
1111111111111111
Опубликовано 02.05.2021 20:12:35 |
Обучение. Усердно учусь.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com