Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 177007|Răspunde: 27

[Sursă] Testele automate .Net/C# Selenium primesc valori de cookie-uri

[Copiază linkul]
Postat pe 05.07.2020 11:44:34 | | | |
Cerere

Deoarece cererea de simulare pentru autentificare este prea complicată, vrem să folosim Selenium pentru a deschide Google Chrome și a obține valoarea cookie-ului după autentificare, apoi să transportăm conținutul cookie-urilor pentru a solicita interfața relevantă a site-ului pentru a automatiza testul.

Seleniu

Selenium este un instrument pentru testarea aplicațiilor web. Testele Selenium rulează direct în browser, ca și cum ar face un utilizator real. Browserele suportate includ IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera etc. Principalele funcții ale acestui instrument includ: Testarea compatibilității browserelor - testează aplicația ta pentru a vedea dacă funcționează bine pe diferite browsere și sisteme de operare. Funcționalitatea sistemului de testare – Creează teste de regresie pentru a verifica funcționalitatea software-ului și cerințele utilizatorului. Suportă înregistrarea automată a acțiunilor și generarea automată a scripturilor de testare în diferite limbaje precum .Net, Java, Perl etc.

Mai întâi, să creăm un nou proiect de consolă C# cu numele "chrome-cookie-demo", iar versiunea .NET framework este 4.7.2.

Comanda nuget este următoarea:

După instalarea Selenium.WebDriver.ChromeDriver, un fișier chromedriver.exe va fi generat în directorul de depanare al proiectului.
Selenium.WebDriver este înțeles ca o interfață abstractă, iar apoi fiecare browser implementează această interfață de unul singur, Selenium.WebDriver va chema Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe va porni Google Chrome instalat nativ conform parametrilor obținuți și apoi va efectua operația corespunzătoare.

Desigur, există o condiție prealabilă,Calculatorul trebuie să aibă Google Chrome instalat

Codul este următorul:

Eroarea este următoarea:


System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83



Aceasta înseamnă că driverul actual nu suportă versiunea 83 de Google Chrome, verifică versiunea instalată pe calculator după cum urmează:


(Versiunea 71.0.3578.98)

Upgrade-ul Google Chrome nativ și repornirea va rezolva problema (sau instalează versiunea de browser care respectă cerințele).

Încercăm să reluăm proiectul chrome-cookie-demo și descoperim că site-ul poate fi deschis normal, dar,Pagina web nu este autentifică。 Când dai click pe browser pentru a deschide acest site, starea este autentificată.

Soluția este să se seteze parametrul user-data-dir cu următorul cod:

Repornim programul și primim următoarea eroare:

Excepție negestionată: OpenQA.Selenium.WebDriverException: argument invalid: user-data directory este deja folosită, vă rugăm să specificați o valoare unică pentru argumentul --user-data-dir, sau nu folosiți -- user-data-dir
   la OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Răspuns eroareRăspuns)
   la OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, parametri Dictionary'2)
   În OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   În OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   În OpenQA.Selenium.Chrome.ChromeDriver: ctor (serviciul ChromeDriverService, opțiuni ChromeOptions, TimeSpan commandTimeout)
   În OpenQA.Selenium.Chrome.ChromeDriver: ctor (serviciul ChromeDriverService, opțiuni ChromeOptions)
   În chrome_cookie_demo. Program.Main(String[] args) Locație C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: linia numărul 36

Pe scurt, folderul a fost ocupat, vă rugăm să-l înlocuiți, soluția:Închide Google Chrome deschis și folosește folderul de date utilizator pentru programul "chrome-cookie-demo" pe care l-am scris

Obține cookie-uri web

driver.manage().getCookies();   Returnează lista tuturor cookie-urilor
driver.manage().getCookieNamed(arg0);  Returnează cookie-ul specific după nume
driver.manage().addCookie(arg0);   Creează și adaugă cookie-ul
driver.manage().deleteCookie(arg0);  Șterge cookie-ul specific
driver.manage().deleteCookieNamed(arg0); Șterge cookie-ul specific în funcție de Nume
driver.manage().deleteAllCookies();  Șterge toate cookie-urile

Documentație:Autentificarea cu hyperlink este vizibilă.

Testăm pentru a obține toate cookie-urile web

Descoperire,Poți citi informațiile despre cookie-uri din "HttpOnly", așa cum se arată în figura de mai jos:



Desigur, trebuie să convertim informațiile cookie-urilor într-un șir, apoi să simulăm interfața de trimitere a cererilor și să atașezăm metoda de conversie în șirul în codul sursă.

Descărcare cod sursă:

Autentificarea cu hyperlink este vizibilă.

(Sfârșit)

Scor

Numărul participanților1MB+1 Contribui+1 Colaps rațiune
jgskingstone + 1 + 1 Foarte puternic!

Vezi toate ratingurile





Precedent:EF(CodeFirst) + MySQL
Următor:Interogarea condiționată MSSQL WHERE ignoră condiția
Postat pe 14.05.2022 10:22:54 |
Prompt:Autorii sunt interziși sau conținutul eliminat este blocat automat
Postat pe 14.05.2022 10:21:26 |
Prompt:Autorii sunt interziși sau conținutul eliminat este blocat automat
Postat pe 27.11.2021 17:31:04 |

Simularea .NET Selenium este încă grozavă, mulțumesc.
Postat pe 05.07.2020 12:46:59 |
Pare bine
Postat pe 18.08.2020 10:45:14 |
Învățare. Învăț din greu.
Postat pe 10.10.2020 17:34:08 |
Vino să înveți, mulțumesc
Postat pe 28.10.2020 17:26:20 |
foarte bine.  
Postat pe 03.11.2020 00:20:29 |
Mulțumesc~~ Învață să înveți ~~~~~~~~
Postat pe 26.11.2020 21:26:44 |
Mulțumesc, LZ, că ai împărtășit
Postat pe 24.01.2021 03:02:19 |
De ce trebuie să răspunzi ca să vezi?
Postat pe 06.03.2021 20:49:30 |
1111111111111111
Postat pe 02.05.2021 20:12:35 |
Învățare. Învăț din greu.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com