Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 177007|Odgovoriti: 27

[Vir] .Net/C# Selenium avtomatizirani testi pridobijo vrednosti piškotkov

[Kopiraj povezavo]
Objavljeno na 5. 07. 2020 11:44:34 | | | |
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)

Partitura

Število udeležencev1MB+1 prispevati+1 Propad razlog
jgskingstone + 1 + 1 Zelo močno!

Oglejte si vse ocene





Prejšnji:EF(CodeFirst) + MySQL
Naslednji:MSSQL pogojna poizvedba WHERE ignorira pogoj
Objavljeno na 14. 05. 2022 10:22:54 |
Uren:Avtorji so prepovedani ali pa je vsebina samodejno blokirana
Objavljeno na 14. 05. 2022 10:21:26 |
Uren:Avtorji so prepovedani ali pa je vsebina samodejno blokirana
Objavljeno na 27. 11. 2021 17:31:04 |

.NET Selenium simulacija je še vedno odlična, hvala.
Objavljeno na 5. 07. 2020 12:46:59 |
Zdi se dobro
Objavljeno na 18. 08. 2020 10:45:14 |
Učenje. Trdo se učim.
Objavljeno na 10. 10. 2020 17:34:08 |
Pridi in se nauči, hvala
Objavljeno na 28. 10. 2020 17:26:20 |
zelo dobro.  
Objavljeno na 3. 11. 2020 00:20:29 |
Hvala~~ Nauči se učiti ~~~~~~~~
Objavljeno na 26. 11. 2020 21:26:44 |
Hvala LZ, ker si delil
Objavljeno na 24. 01. 2021 03:02:19 |
Zakaj moraš odgovoriti, da ga vidiš?
Objavljeno na 6. 03. 2021 20:49:30 |
1111111111111111
Objavljeno na 2. 05. 2021 20:12:35 |
Učenje. Trdo se učim.
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com