Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 177007|Antwoord: 27

[Bron] .Net/C# Selenium geautomatiseerde tests krijgen cookiewaarden

[Link kopiëren]
Geplaatst op 05-07-2020 11:44:34 | | | |
Vraag

Omdat het simulatieverzoek voor inloggen te ingewikkeld is, willen we Selenium gebruiken om Google Chrome te openen om de cookiewaarde na het inloggen te krijgen, en vervolgens de cookie-inhoud meenemen om de relevante interface van de website aan te vragen om de test te automatiseren.

Selenium

Selenium is een tool voor het testen van webapplicaties. Seleniumtests worden direct in de browser uitgevoerd, alsof een echte gebruiker het doet. Ondersteunde browsers zijn onder andere IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, enzovoort. De belangrijkste functies van deze tool zijn: Browsercompatibiliteitstesten - test je applicatie om te zien of deze goed werkt op verschillende browsers en besturingssystemen. Testsysteemfunctionaliteit – Maak regressietests om de softwarefunctionaliteit en gebruikersvereisten te verifiëren. Het ondersteunt automatische registratie van acties en automatische generatie van testscripts in verschillende talen zoals .Net, Java, Perl, enzovoort.

Laten we eerst een nieuw C#-consoleproject maken met de projectnaam "chrome-cookie-demo" en de .NET framework-versie is 4.7.2.

Het nuget-commando is als volgt:

Na de installatie van Selenium.WebDriver.ChromeDriver wordt een chromedriver.exe bestand gegenereerd in de projectdebugmap.
Selenium.WebDriver wordt begrepen als een abstracte interface, en elke browser implementeert deze interface zelfstandig; Selenium.WebDriver roept Selenium.WebDriver.ChromeDriver(chromedriver.exe) aan, chromedriver.exe start de native geïnstalleerde Google Chrome volgens de verkregen parameters en voert vervolgens de bijbehorende bewerking uit.

Natuurlijk is er een vereiste,De computer moet Google Chrome geïnstalleerd hebben

De code is als volgt:

De fout is als volgt:


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



Dit betekent dat de huidige driver versie 83 van Google Chrome niet ondersteunt, controleer de versie die op de machine is geïnstalleerd als volgt:


(Versie 71.0.3578.98)

Je native Google Chrome upgraden en opnieuw opstarten lost het op (of installeer de browserversie die aan de eisen voldoet).

We proberen het chrome-cookie-demo-project opnieuw uit te voeren en merken dat de site normaal geopend kan worden, maar,De webpagina is niet ingelogd。 Wanneer je op de browser klikt om deze site te openen, is de status ingelogd.

De oplossing is om de parameter-user-data-dir in te stellen met de volgende code:

We starten het programma opnieuw en krijgen de volgende foutmelding:

Onbehandelde uitzondering: OpenQA.Selenium.WebDriver Uitzondering: ongeldig argument: user data directory is al in gebruik, geef alstublieft een unieke waarde aan voor --user-data-dir argument, of gebruik -- user-data-dir
   op OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   bij OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
   In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   In OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   In OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService-service, ChromeOptions-opties, TimeSpan-commandTimeout)
   In OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService-service, ChromeOptions-opties)
   In chrome_cookie_demo. Program.Main(String[] args) Locatie C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: regelnummer 36

Grofweg is de map bezet, vervang hem alsjeblieft, de oplossing:Sluit je open Google Chrome en gebruik de map gebruikersgegevens voor het programma "chrome-cookie-demo" dat we hebben geschreven

Haal webcookies

driver.manage().getCookies();   Stuur de lijst van alle cookies terug
driver.manage().getCookieNamed(arg0);  Retourneer specifieke cookie op naam
driver.manage().addCookie(arg0);   Maak de cookie aan en voeg het toe
driver.manage().deleteCookie(arg0);  Verwijder specifieke cookie
driver.manage().deleteCookieNamed(arg0); Verwijder specifieke cookie volgens Naam
driver.manage().deleteAllCookies();  Verwijder alle cookies

Documentatie:De hyperlink-login is zichtbaar.

We testen om alle webcookies te verkrijgen

Ontdekking,Je kunt de cookie-informatie lezen op "HttpOnly", zoals getoond in de onderstaande figuur:



Natuurlijk moeten we de cookie-informatie omzetten in een string, vervolgens de request submission-interface simuleren en de methode om het te converteren koppelen aan een string in de broncode.

Broncode downloaden:

De hyperlink-login is zichtbaar.

(Einde)

Partituur

Aantal deelnemers1MB+1 bijdragen+1 Instorting reden
jgskingstone + 1 + 1 Heel krachtig!

Bekijk alle beoordelingen





Vorig:EF(CodeFirst) + MySQL
Volgend:MSSQL conditionele query WHERE negeert de voorwaarde
Geplaatst op 14-05-2022 10:22:54 |
Prompt:Auteurs worden verbannen of verwijderde inhoud wordt automatisch geblokkeerd
Geplaatst op 14-05-2022 10:21:26 |
Prompt:Auteurs worden verbannen of verwijderde inhoud wordt automatisch geblokkeerd
Geplaatst op 27-11-2021 17:31:04 |

.NET Selenium-simulatie is nog steeds geweldig, dank je wel.
Geplaatst op 05-07-2020 12:46:59 |
Het lijkt goed
Geplaatst op 18-08-2020 10:45:14 |
Leren. Hard studeren.
Geplaatst op 10-10-2020 17:34:08 |
Kom en leer, dank je wel
Geplaatst op 28-10-2020 17:26:20 |
Heel goed.  
Geplaatst op 03-11-2020 00:20:29 |
Dank je~~ Leer leren ~~~~~~~~
Geplaatst op 26-11-2020 21:26:44 |
Bedankt LZ voor het delen
Geplaatst op 24-01-2021 03:02:19 |
Waarom moet je reageren om het te zien?
Geplaatst op 06-03-2021 20:49:30 |
1111111111111111
Geplaatst op 02-05-2021 20:12:35 |
Leren. Hard studeren.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com