Efterspørgsel
Da simuleringsanmodningen om login er for kompliceret, ønsker vi at bruge Selenium til at åbne Google Chrome for at få cookie-værdien efter login, og derefter overføre cookieindholdet for at anmode om det relevante interface på hjemmesiden for at automatisere testen.
Selen
Selenium er et værktøj til testning af webapplikationer. Selenium-tests kører direkte i browseren, som om en rigtig bruger udførte det. Understøttede browsere inkluderer IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera osv. De vigtigste funktioner i dette værktøj inkluderer: Browserkompatibilitetstest – test din applikation for at se, om den fungerer godt på forskellige browsere og operativsystemer. Testsystemfunktionalitet – Skab regressionstests for at verificere softwarefunktionalitet og brugerkrav. Den understøtter automatisk registrering af handlinger og automatisk generering af testscripts på forskellige sprog såsom .Net, Java, Perl osv.
Lad os først oprette et nyt C#-konsolprojekt med projektnavnet "chrome-cookie-demo", og .NET framework-versionen er 4.7.2.
Nuget-kommandoen er som følger:
Efter installationen af Selenium.WebDriver.ChromeDriver vil en chromedriver.exe-fil blive genereret i projektets debug-mappe. Selenium.WebDriver forstås som et abstrakt interface, og hver browser implementerer dette interface alene; Selenium.WebDriver kalder Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe starter den native installerede Google Chrome i henhold til de opnåede parametre og udfører derefter den tilsvarende operation.
Selvfølgelig er der en forudsætning,Computeren skal have Google Chrome installeret。
Koden er som følger:
Fejlen er som følger:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Det betyder, at den nuværende driver ikke understøtter version 83 af Google Chrome, tjek den version, der er installeret på maskinen, som følger:
(Version 71.0.3578.98)
At opgradere din native Google Chrome og genstarte den vil løse problemet (eller installere den browserversion, der opfylder kravene).
Vi prøver at genkøre chrome-cookie-demo-projektet og finder ud af, at siden kan åbnes normalt, men,Websiden er ikke logget ind。 Når du klikker på browseren for at åbne dette site, er status logget ind.
Løsningen er at sætte parameteren user-data-dir med følgende kode:
Vi genstarter programmet og får følgende fejl:
Ubehandlet undtagelse: OpenQA.Selenium.WebDriverUndtagelse: ugyldigt argument: brugerdatakataloget er allerede i brug, angiv venligst en unik værdi for --user-data-dir-argumentet, eller brug ikke -- user-data-dir på OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) på OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parametre) I OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) I OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor kommandoExecutor, ICapabilities ønskedeKapabiliteter) I OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService-tjeneste, ChromeOptions-muligheder, TimeSpan-kommandoTimeout) I OpenQA.Selenium.Chrome.ChromeDriver: ctor (ChromeDriverService-tjeneste, ChromeOptions-muligheder) I chrome_cookie_demo. Program.Main(String[] args) Placering C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\Program.cs chrome-cookie-demo\: linjenummer 36 Groft sagt er mappen blevet optaget, så udskift den venligst, løsningen:Luk din åbne Google Chrome og brug brugerdatamappen til programmet "chrome-cookie-demo", vi har skrevet。
Få webcookies
driver.manage().getCookies(); Returner listen over alle cookies driver.manage().getCookieNamed(arg0); Returner specifik cookie efter navn driver.manage().addCookie(arg0); Opret og tilføj cookien driver.manage().deleteCookie(arg0); Slet specifik cookie driver.manage().deleteCookieNamed(arg0); Slet specifik cookie efter navn driver.manage().deleteAllCookies(); Slet alle cookies Dokumentation:Hyperlink-login er synlig.
Vi tester for at få alle webcookies
Opdagelse,Du kan læse cookieoplysningerne på "HttpOnly", som vist i figuren nedenfor:
Selvfølgelig skal vi konvertere cookie-informationen til en streng og derefter simulere anmodningsindsendelsesgrænsefladen og vedhæfte metoden til at konvertere den til en streng i kildekoden.
Kildekode-download:
Hyperlink-login er synlig.
(Slut)
|