povpraševanje
Ker je simulacijska zahteva za prijavo preveč zapletena, želimo uporabiti Selenium za odpiranje Google Chrome, da po prijavi dobimo vrednost piškotka, nato pa prenesemo vsebino piškotka, da zahtevamo ustrezen vmesnik spletne strani za avtomatizacijo testa.
Selen
Selenium je orodje za testiranje spletnih aplikacij. Selenium testi se izvajajo neposredno v brskalniku, kot da bi to izvajal pravi uporabnik. Podprti brskalniki vključujejo IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera itd. Glavne funkcije tega orodja vključujejo: testiranje združljivosti brskalnikov – testirajte svojo aplikacijo, da vidite, ali dobro deluje na različnih brskalnikih in operacijskih sistemih. Preizkusite funkcionalnost sistema – Ustvarite regresijske teste za preverjanje funkcionalnosti programske opreme in uporabniških zahtev. Podpira samodejno beleženje dejanj in samodejno generiranje testnih skript v različnih jezikih, kot so .Net, Java, Perl itd.
Najprej ustvarimo nov C# konzolni projekt z imenom projekta "chrome-cookie-demo" in različico .NET ogrodja 4.7.2.
Ukaz nuget je naslednji:
Po namestitvi Selenium.WebDriver.ChromeDriver se v mapi za odpravljanje napak projekta ustvari chromedriver.exe datoteka. Selenium.WebDriver je razumljen kot abstraktni vmesnik, nato pa vsak brskalnik ta vmesnik implementira samostojno, Selenium.WebDriver pokliče Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe zažene nativno nameščeni Google Chrome glede na pridobljene parametre in nato izvede ustrezno operacijo.
Seveda obstaja predpogoj,Računalnik mora imeti nameščen Google Chrome。
Koda je naslednja:
Napaka je naslednja:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
To pomeni, da trenutni gonilnik ne podpira različice 83 Google Chrome, preverite različico nameščeno na računalniku takole:
(Različica 71.0.3578.98)
Nadgradnja vašega izvornega Google Chromea in ponovni zagon bo težavo odpravila (ali namestite različico brskalnika, ki izpolnjuje zahteve).
Poskušamo ponovno zagnati demo projekt chrome-cookieja in ugotovimo, da se stran lahko normalno odpre, vendar,Spletna stran ni prijavljena。 Ko kliknete na brskalnik, da odprete to stran, je status prijavljen.
Rešitev je, da parameter user-data-dir nastavite z naslednjo kodo:
Program ponovno zaženemo in dobimo naslednjo napako:
Neobdelana izjema: OpenQA.Selenium.WebDriverIzjema: neveljaven argument: imenik uporabniških podatkov je že v uporabi, prosimo, določite edinstveno vrednost za --user-data-dir argument, ali ne uporabljajte -- user-data-dir at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Odziv na napako) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters) In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) V OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) V OpenQA.Selenium.Chrome.ChromeDriver: ctor(storitev ChromeDriverService, možnosti ChromeOptions, ukaz TimeSpan) V OpenQA.Selenium.Chrome.ChromeDriver: ctor(storitev ChromeDriverService, možnosti ChromeOptions) V chrome_cookie_demo. Program.Main(String[] args) Lokacija C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: vrstica številka 36 Približno povedano, mapa je zasedena, prosim, zamenjajte jo, rešitev:Zaprite odprti Google Chrome in uporabite mapo z uporabniškimi podatki za program "chrome-cookie-demo", ki smo ga napisali。
Pridobite spletne piškotke
driver.manage().getCookies(); Vrni seznam vseh piškotkov driver.manage().getCookieNamed(arg0); Vrni specifičen piškotek glede na ime driver.manage().addCookie(arg0); Ustvarite in dodajte piškotek driver.manage().deleteCookie(arg0); Izbriši določen piškotek driver.manage().deleteCookieNamed(arg0); Izbriši določen piškotek glede na ime driver.manage().deleteAllCookies(); Izbriši vse piškotke Dokumentacija:Prijava do hiperpovezave je vidna.
Testiramo, da dobimo vse spletne piškotke
Odkritje,Podatke o piškotkih lahko preberete na "HttpOnly", kot je prikazano na spodnji sliki:
Seveda moramo podatke o piškotkih pretvoriti v niz, nato simulirati vmesnik za oddajo zahtevkov in pripisati metodo pretvorbe v niz v izvorni kodi.
Prenos izvorne kode:
Prijava do hiperpovezave je vidna.
(Konec)
|