Търсене
Тъй като заявката за симулация за вход е твърде сложна, искаме да използваме Selenium, за да отворим Google Chrome и да получим стойността на бисквитките след вход, а след това да пренесем съдържанието на бисквитките, за да поискаме съответния интерфейс на уебсайта и да автоматизираме теста.
Селен
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-бисквитки и установяваме, че сайтът може да се отвори нормално, но,Уеб страницата не е влезена в системата。 Когато кликнете върху браузъра, за да отворите този сайт, статусът е логнат.
Решението е да се зададе параметърът user-data-dir със следния код:
Рестартираме програмата и получаваме следната грешка:
Необработено изключение: OpenQA.Selenium.WebDriverException: invalid argument: директорията с потребителски данни вече се използва, моля посочете уникална стойност за --user-data-dir аргумент, или не използвайте -- 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 commandTimeout) В 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 и използвайте папката с потребителски данни за програмата "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(); Изтрийте всички бисквитки Документация:Входът към хиперлинк е видим.
Тестваме, за да получим всички уеб бисквитки
Откритие,Можете да прочетете информацията за бисквитките в "HttpOnly", както е показано на фигурата по-долу:
Разбира се, трябва да конвертираме информацията от бисквитките в низ, след това да симулираме интерфейса за подаване на заявка и да прикачим метода за конвертиране към низ в изходния код.
Изтегляне на изходния код:
Входът към хиперлинк е видим.
(Край)
|