Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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: user data directory вже використовується, будь ласка, вкажіть унікальне значення --user-data-dir argument, або не використовуйте -- user-data-dir
   на OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Помилка відповіді)
   на OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
   В OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities neededdCapabilities)
   У OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities бажаніМожливості)
   В 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", яку ми написали

Отримайте веб-файли cookie

driver.manage().getCookies();   Повернути список усіх cookie
driver.manage().getCookieNamed(arg0);  Повернути конкретне cookie за назвою
driver.manage().addCookie(arg0);   Створіть і додайте печиво
driver.manage().deleteCookie(arg0);  Видалити конкретне cookie
driver.manage().deleteCookieNamed(arg0); Видалити конкретне cookie за назвою
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 симуляція селену все одно чудова, дякую.
Опубліковано 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 00:20:29 |
Дякую~~ Навчися вчитися ~~~~~~~~
Опубліковано 26.11.2020 21:26:44 |
Дякую, LZ за поділ
Опубліковано 24.01.2021 03:02:19 |
Чому треба відповідати, щоб це побачити?
Опубліковано 06.03.2021 20:49:30 |
1111111111111111
Опубліковано 02.05.2021 20:12:35 |
Навчання. Старанно вчився.
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com