Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 177007|Svar: 27

[Källa] .Net/C# Selenium-automatiserade tester får cookie-värden

[Kopiera länk]
Publicerad på 2020-07-05 11:44:34 | | | |
Efterfrågan

Eftersom simuleringsförfrågan om inloggning är för komplicerad vill vi använda Selenium för att öppna Google Chrome för att få cookievärdet efter inloggning, och sedan bära cookieinnehållet för att begära relevant gränssnitt på webbplatsen för att automatisera testet.

Selen

Selenium är ett verktyg för testning av webbapplikationer. Seleniumtester körs direkt i webbläsaren, som om en riktig användare gjorde det. Stödda webbläsare inkluderar IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, etc. Verktygets huvudfunktioner inkluderar: Webbläsarkompatibilitetstestning – testa din applikation för att se om den fungerar bra på olika webbläsare och operativsystem. Testsystemfunktionalitet – Skapa regressionstester för att verifiera mjukvarufunktionalitet och användarkrav. Den stöder automatisk registrering av åtgärder och automatisk generering av testskript i olika språk såsom .Net, Java, Perl, etc.

Först, låt oss skapa ett nytt C#-konsolprojekt med projektnamnet "chrome-cookie-demo" och .NET-ramverket är version 4.7.2.

Nuget-kommandot är följande:

Efter installationen av Selenium.WebDriver.ChromeDriver genereras en chromedriver.exe fil i projektets felsökningskatalog.
Selenium.WebDriver förstås som ett abstrakt gränssnitt, och varje webbläsare implementerar detta gränssnitt själv, Selenium.WebDriver anropar Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe startar den nativt installerade Google Chrome enligt de erhållna parametrarna och utför sedan motsvarande operation.

Självklart finns det ett förkunskapskrav,Datorn måste ha Google Chrome installerat

Koden är följande:

Felet är följande:


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



Detta innebär att den nuvarande drivrutinen inte stöder version 83 av Google Chrome, kontrollera den version som är installerad på maskinen enligt följande:


(Version 71.0.3578.98)

Att uppgradera din inbyggda Google Chrome och starta om den löser problemet (eller installera den webbläsarversion som uppfyller kraven).

Vi försöker köra om chrome-cookie-demo-projektet och ser att sidan kan öppnas normalt, men,Webbsidan är inte inloggad。 När du klickar på webbläsaren för att öppna denna sida är statusen inloggad.

Lösningen är att sätta parametern user-data-dir med följande kod:

Vi startar om programmet och får följande fel:

Undantag för ohanterat undantag: OpenQA.Selenium.WebDriverUndantag: ogiltigt argument: användardatakatalogen är redan i bruk, vänligen ange ett unikt värde för --user-data-dir-argumentet, eller använd inte -- user-data-dir
   på OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   på OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
   I OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   I OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor kommandoExecutor, ICapabilities önskadeKapaciteter)
   I OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService-tjänst, ChromeOptions-alternativ, TimeSpan-kommandoTimeout)
   I OpenQA.Selenium.Chrome.ChromeDriver: ctor (ChromeDriverService-tjänst, ChromeOptions-alternativ)
   I chrome_cookie_demo. Program.Main(String[] args) Plats C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: radnummer 36

Grovt sett har mappen blivit upptagen, vänligen ersätt den, lösningen:Stäng din öppna Google Chrome och använd användardatamappen för programmet "chrome-cookie-demo" som vi skrev

Skaffa webbcookies

driver.manage().getCookies();   Returnera listan över alla cookies
driver.manage().getCookieNamed(arg0);  Returnera specifik cookie enligt namn
driver.manage().addCookie(arg0);   Skapa och lägg till kakan
driver.manage().deleteCookie(arg0);  Ta bort specifik cookie
driver.manage().deleteCookieNamed(arg0); Ta bort specifik cookie enligt namn
driver.manage().deleteAllCookies();  Radera alla cookies

Dokumentation:Inloggningen med hyperlänken är synlig.

Vi testar för att få alla webbcookies

Upptäckt,Du kan läsa cookieinformationen för "HttpOnly", som visas i figuren nedan:



Självklart behöver vi konvertera cookieinformationen till en sträng, och sedan simulera gränssnittet för förfrågningsinlämning och koppla metoden för att konvertera den till en sträng i källkoden.

Källkodsnedladdning:

Inloggningen med hyperlänken är synlig.

(Slut)

Tjog

Antal deltagare1MB+1 bidra+1 Kollaps förnuft
jgskingstone + 1 + 1 Mycket kraftfullt!

Se alla betyg





Föregående:EF(CodeFirst) + MySQL
Nästa:MSSQL villkorsfråga DÄR ignorerar villkoret
Publicerad på 2022-05-14 10:22:54 |
Snabb:Författare är bannlysta eller borttaget innehåll blockeras automatiskt
Publicerad på 2022-05-14 10:21:26 |
Snabb:Författare är bannlysta eller borttaget innehåll blockeras automatiskt
Publicerad på 2021-11-27 17:31:04 |

.NET Selenium-simuleringen är fortfarande fantastisk, tack.
Publicerad på 2020-07-05 12:46:59 |
Det verkar bra
Publicerad på 2020-08-18 10:45:14 |
Lär mig. Pluggar hårt.
Publicerad på 2020-10-10 17:34:08 |
Kom och lär dig, tack
Publicerad på 2020-10-28 17:26:20 |
Väldigt bra.  
Publicerad på 2020-11-03 00:20:29 |
Tack~~ Lär dig lära dig ~~~~~~~~
Publicerad på 2020-11-26 21:26:44 |
Tack LZ för att du delade med dig
Publicerad på 2021-01-24 03:02:19 |
Varför måste du svara för att se det?
Publicerad på 2021-03-06 20:49:30 |
1111111111111111
Publicerad på 2021-05-02 20:12:35 |
Lär mig. Pluggar hårt.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com