Etterspørsel
Siden simuleringsforespørselen for innlogging er for komplisert, ønsker vi å bruke Selenium til å åpne Google Chrome for å hente informasjonskapselverdien etter innlogging, og deretter overføre informasjonskapselinnholdet for å be om relevant grensesnitt på nettsiden for å automatisere testen.
Selen
Selenium er et verktøy for testing av webapplikasjoner. Selen-tester kjøres direkte i nettleseren, som om en ekte bruker gjorde det. Støttede nettlesere inkluderer IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, osv. Hovedfunksjonene til dette verktøyet inkluderer: Nettleserkompatibilitetstesting – test applikasjonen din for å se om den fungerer godt på ulike nettlesere og operativsystemer. Testsystemfunksjonalitet – Lag regresjonstester for å verifisere programvarefunksjonalitet og brukerkrav. Den støtter automatisk registrering av handlinger og automatisk generering av testskript i ulike språk som .Net, Java, Perl, osv.
Først, la oss lage et nytt C#-konsollprosjekt med prosjektnavnet "chrome-cookie-demo" og .NET-rammeverksversjonen er 4.7.2.
Nuget-kommandoen er som følger:
Etter installasjonen av Selenium.WebDriver.ChromeDriver vil en chromedriver.exe-fil bli generert i prosjektets feilsøkingsmappe. Selenium.WebDriver forstås som et abstrakt grensesnitt, og hver nettleser implementerer dette grensesnittet selv, Selenium.WebDriver vil kalle Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe starter den native installerte Google Chrome i henhold til de oppnådde parameterne, og deretter utfører den tilsvarende operasjonen.
Selvfølgelig finnes det en forutsetning,Datamaskinen må ha Google Chrome installert。
Koden er som følger:
Feilen er som følger:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Dette betyr at den nåværende driveren ikke støtter versjon 83 av Google Chrome, sjekk versjonen som er installert på maskinen slik:
(Versjon 71.0.3578.98)
Å oppgradere din native Google Chrome og starte den på nytt vil løse problemet (eller installere nettleserversjonen som oppfyller kravene).
Vi prøver å kjøre chrome-cookie-demo-prosjektet på nytt og finner ut at siden kan åpnes normalt, men,Nettsiden er ikke logget inn。 Når du klikker på nettleseren for å åpne dette nettstedet, er statusen logget inn.
Løsningen er å sette parameteren user-data-dir med følgende kode:
Vi starter programmet på nytt og får følgende feil:
Ubehandlet unntak: OpenQA.Selenium.WebDriverUnntak: ugyldig argument: brukerdatakatalogen er allerede i bruk, vennligst spesifiser en unik verdi for --user-data-dir-argumentet, eller ikke bruk -- 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 ønsketKapasiteter) I OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService-tjeneste, ChromeOptions-alternativer, TimeSpan kommandoTimeout) I OpenQA.Selenium.Chrome.ChromeDriver: ctor (ChromeDriverService-tjeneste, ChromeOptions-alternativer) I chrome_cookie_demo. Program.Main(String[] args) Lokasjon C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: linjenummer 36 Grovt sagt er mappen opptatt, vennligst erstatt den, løsningen:Lukk den åpne Google Chrome og bruk brukermappen for programmet "chrome-cookie-demo" vi skrev。
Få nettcookies
driver.manage().getCookies(); Returner listen over alle informasjonskapsler driver.manage().getCookieNamed(arg0); Returner spesifikk informasjonskapsel etter navn driver.manage().addCookie(arg0); Lag og legg til informasjonskapselen driver.manage().deleteCookie(arg0); Slett spesifikk informasjonskapsel driver.manage().deleteCookieNamed(arg0); Slett spesifikk informasjonskapsel etter navn driver.manage().deleteAllCookies(); Slett alle informasjonskapsler Dokumentasjon:Innloggingen med hyperkoblingen er synlig.
Vi tester for å få alle nettcookies
Oppdagelse,Du kan lese informasjonskapselinformasjonen til "HttpOnly", som vist i figuren nedenfor:
Selvfølgelig må vi konvertere informasjonskapselinformasjonen til en streng, og deretter simulere forespørselsgrensesnittet, og knytte metoden for å konvertere det til en streng i kildekoden.
Nedlasting av kildekode:
Innloggingen med hyperkoblingen er synlig.
(Slutt)
|