Nõudlus
Kuna simulatsiooni sisselogimispäring on liiga keeruline, tahame kasutada Seleniumi, et avada Google Chrome ja saada küpsise väärtus pärast sisselogimist, ning seejärel kanda küpsise sisu, et taotleda veebisaidi vastavat liidest testi automatiseerimiseks.
Seleen
Selen on tööriist veebirakenduste testimiseks. Seleeni testid toimuvad otse brauseris, justkui teeks seda päris kasutaja. Toetatud brauserid on IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera jne. Selle tööriista peamised funktsioonid hõlmavad: brauseri ühilduvuse testimine – testige oma rakendust, et näha, kas see töötab hästi erinevatel brauseritel ja operatsioonisüsteemidel. Test süsteemi funktsionaalsus – Loo regressiooniteste, et kontrollida tarkvara funktsionaalsust ja kasutaja nõudeid. See toetab automaatset tegevuste salvestamist ja testskriptide automaatset genereerimist erinevates keeltes nagu .Net, Java, Perl jne.
Kõigepealt loome uue C# konsooliprojekti projekti nimega "chrome-cookie-demo" ja .NET raamistiku versioon on 4.7.2.
Nuget käsk on järgmine:
Pärast Selenium.WebDriver.ChromeDriver paigaldamist genereeritakse projekti silumiskataloogis chromedriver.exe fail. Selenium.WebDriverit mõistetakse kui abstraktset liidest, ja iga brauser rakendab selle liidese iseseisvalt, Selenium.WebDriver kutsub Selenium.WebDriver.ChromeDriver(chromedriver.exe) chromedriver.exe käivitab natiiviks paigaldatud Google Chrome'i vastavalt saadud parameetritele ning seejärel sooritab vastava toimingu.
Loomulikult on olemas eeltingimus,Arvutis peab olema Google Chrome installitud。
Kood on järgmine:
Viga on järgmine:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
See tähendab, et praegune draiver ei toeta Google Chrome'i versiooni 83, kontrollige arvutis paigaldatud versiooni järgmiselt:
(Versioon 71.0.3578.98)
Google Chrome'i natiivse uuendamine ja taaskäivitamine parandab probleemi (või paigalda brauseriversioon, mis vastab nõuetele).
Proovime uuesti käivitada chrome-cookie-demo projekti ja leiame, et saiti saab tavapäraselt avada, kuid,Veebileht ei ole sisse logitud。 Kui klõpsate brauseril selle saidi avamiseks, on staatus sisse logitud.
Lahendus on seada kasutaja-data-dir parameetri järgmise koodiga:
Taaskäivitame programmi ja saame järgmise veateate:
Käsitlemata erand: OpenQA.Selenium.WebDriverException: kehtetu argument: kasutajaandmete kataloog on juba kasutuses, palun määrake unikaalne väärtus --user-data-dir argumendile või ärge kasutage -- user-data-dir aadressil OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) aadressil OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameetrid) OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilitys desiredCapabilities) OpenQA.Selenium.Remote.RemoteWebDriveris: ctor(ICommandExecutor commandExecutor, ICapabilitys desiredCapabilities) OpenQA.Selenium.Chrome.ChromeDriveris: ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout) OpenQA.Selenium.Chrome.ChromeDriveris: ctor (ChromeDriverService teenus, ChromeOptions valikud) chrome_cookie_demo. aastal Program.Main(String[] args) Asukoht C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: rida number 36 Umbkaudu öeldes on kaust hõivatud, palun asendage see, lahendus:Sulge oma avatud Google Chrome ja kasuta kasutajaandmete kausta programmi "chrome-cookie-demo" jaoks, mille me kirjutasime。
Hangi veebiküpsised
driver.manage().getCookies(); Tagasta kõigi küpsiste nimekiri driver.manage().getCookieNamed(arg0); Tagasta konkreetne küpsis vastavalt nimele driver.manage().addCookie(arg0); Loo ja lisa küpsis driver.manage().deleteCookie(arg0); Kustuta konkreetne küpsis driver.manage().deleteCookieNamed(arg0); Kustuta konkreetne küpsis vastavalt nimele driver.manage().deleteAllCookies(); Kustuta kõik küpsised Dokumentatsioon:Hüperlingi sisselogimine on nähtav.
Me testime kõiki veebiküpsiseid
Avastus,Saate lugeda küpsiste infot "HttpOnly", nagu alloleval joonisel näidatud:
Muidugi peame küpsiste info stringiks teisendama, seejärel simuleerima päringute esitamise liidest ja lisama selle teisendamise meetodi lähtekoodi stringile.
Lähtekoodi allalaadimine:
Hüperlingi sisselogimine on nähtav.
(Lõpp)
|