Попит
Оскільки запит на симуляцію для входу надто складний, ми хочемо використати 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 у рядок, потім імітувати інтерфейс подання запиту і додати метод конвертації до рядка в вихідному коді.
Завантаження вихідного коду:
Вхід за гіперпосиланням видно.
(Кінець)
|