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)
|