Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 177007|Отговор: 27

[Източник] .Net/C# автоматизираните тестове на Selenium получават стойности на бисквитки

[Копирай линк]
Публикувано в 5.07.2020 г. 11:44:34 ч. | | | |
Търсене

Тъй като заявката за симулация за вход е твърде сложна, искаме да използваме 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", както е показано на фигурата по-долу:



Разбира се, трябва да конвертираме информацията от бисквитките в низ, след това да симулираме интерфейса за подаване на заявка и да прикачим метода за конвертиране към низ в изходния код.

Изтегляне на изходния код:

Входът към хиперлинк е видим.

(Край)

Резултат

Брой участници1MB+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 симулацията все още е страхотна, благодаря.
Публикувано в 5.07.2020 г. 12:46:59 ч. |
Изглежда добре
Публикувано в 18.08.2020 г. 10:45:14 ч. |
Учене. Уча усърдно.
Публикувано в 10.10.2020 г. 17:34:08 ч. |
Ела и учи, благодаря
Публикувано в 28.10.2020 г. 17:26:20 ч. |
Много добре.  
Публикувано в 3.11.2020 г. 0:20:29 ч. |
Благодаря~~ Научи се да учиш ~~~~~~~~
Публикувано в 26.11.2020 г. 21:26:44 ч. |
Благодаря, LZ, че сподели
Публикувано в 24.01.2021 г. 3:02:19 ч. |
Защо трябва да отговаряш, за да го видиш?
Публикувано в 6.03.2021 г. 20:49:30 ч. |
1111111111111111
Публикувано в 2.05.2021 г. 20:12:35 ч. |
Учене. Уча усърдно.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com