Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 177007|Risposta: 27

[Fonte] .Net/C# Test automatizzati Selenium ottengono valori di cookie

[Copiato link]
Pubblicato su 05/07/2020 11:44:34 | | | |
Domanda

Poiché la richiesta di simulazione per il login è troppo complicata, vogliamo usare Selenium per aprire Google Chrome e ottenere il valore del cookie dopo l'accesso, e poi portare il contenuto dei cookie per richiedere l'interfaccia pertinente del sito web per automatizzare il test.

Selenio

Selenium è uno strumento per il testing di applicazioni web. I test di Selenium vengono eseguiti direttamente nel browser, come se fosse un utente reale. I browser supportati includono IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, ecc. Le principali funzionalità di questo strumento includono: Test di compatibilità con i browser - testa la tua applicazione per vedere se funziona bene su diversi browser e sistemi operativi. Funzionalità del sistema di test – Creare test di regressione per verificare la funzionalità del software e i requisiti dell'utente. Supporta la registrazione automatica delle azioni e la generazione automatica di script di test in diversi linguaggi come .Net, Java, Perl, ecc.

Per prima cosa, creiamo un nuovo progetto console C# con il nome "chrome-cookie-demo" e la versione del .NET framework è la 4.7.2.

Il comando nuget è il seguente:

Dopo l'installazione di Selenium.WebDriver.ChromeDriver, verrà generato un file chromedriver.exe nella directory di debug del progetto.
Selenium.WebDriver è inteso come un'interfaccia astratta e poi ogni browser implementa questa interfaccia autonomamente, Selenium.WebDriver chiamerà Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe avvierà il Google Chrome installato nativamente secondo i parametri ottenuti, ed eseguirà l'operazione corrispondente.

Certo, c'è un prerequisito,Il computer deve avere Google Chrome installato

Il codice è il seguente:

L'errore è il seguente:


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



Questo significa che il driver attuale non supporta la versione 83 di Google Chrome, controlla la versione installata sulla macchina come segue:


(Versione 71.0.3578.98)

Aggiornare il tuo Google Chrome nativo e riavviarlo risolverà il problema (oppure installa la versione browser che soddisfa i requisiti).

Cerchiamo di riavviare il progetto demo di chrome-cookie e scopriamo che il sito può essere aperto normalmente, ma,La pagina web non è logata。 Quando clicchi sul browser per aprire questo sito, lo stato è loggato.

La soluzione è impostare il parametro user-data-dir con il seguente codice:

Riavviiamo il programma e riceviamo il seguente errore:

Eccezione non trattata: OpenQA.Selenium.WebDriverException: argomento invalido: la directory dati utente è già in uso, si prega di specificare un valore unico per --user-data-dir argomento, oppure non usare -- user-data-dir
   su OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Risposta erroreRisposta)
   su OpenQA.Selenium.Remote.RemoteWebDriver.Execute(StringdriverCommandToExecute, parametri del Dizionario'2)
   In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   In OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desideratedCapabilities)
   In OpenQA.Selenium.Chrome.ChromeDriver: ctor(servizio ChromeDriverService, opzioni ChromeOptions, comando TimeSpan Tempoout)
   In OpenQA.Selenium.Chrome.ChromeDriver: ctor (servizio ChromeDriverService, opzioni ChromeOptions)
   A chrome_cookie_demo. Program.Main(String[] args) Posizione C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: numero riga 36

In termini generali, la cartella è stata occupata, per favore sostituiscila, la soluzione:Chiudi il Google Chrome aperto e usa la cartella dati utente per il programma "chrome-cookie-demo" che abbiamo scritto

Ottieni cookie web

driver.manage().getCookies();   Restituisci la lista di tutti i biscotti
driver.manage().getCookieNamed(arg0);  Restituisci cookie specifico in base al nome
driver.manage().addCookie(arg0);   Crea e aggiungi il cookie
driver.manage().deleteCookie(arg0);  Elimina cookie specifici
driver.manage().deleteCookieNamed(arg0); Elimina cookie specifico in base al Nome
driver.manage().deleteAllCookies();  Elimina tutti i cookie

Documentazione:Il login del link ipertestuale è visibile.

Testiamo per ottenere tutti i cookie web

Scoperta,Puoi leggere le informazioni sui cookie di "HttpOnly", come mostrato nella figura sottostante:



Ovviamente, dobbiamo convertire le informazioni sui cookie in una stringa, poi simulare l'interfaccia di invio delle richieste e aggiungere il metodo per convertirla in una stringa nel codice sorgente.

Scarica codice sorgente:

Il login del link ipertestuale è visibile.

(Fine)

Punteggio

Numero di partecipanti1MB+1 contribuire+1 Collasso ragione
JGSKINGSTONE + 1 + 1 Molto potente!

Vedi tutte le valutazioni





Precedente:EF(CodeFirst) + MySQL
Prossimo:Query condizionale MSSQL WHERE ignora la condizione
Pubblicato su 14/05/2022 10:22:54 |
Sollecito:Gli autori vengono bannati o i contenuti rimossi vengono automaticamente bloccati
Pubblicato su 14/05/2022 10:21:26 |
Sollecito:Gli autori vengono bannati o i contenuti rimossi vengono automaticamente bloccati
Pubblicato su 27/11/2021 17:31:04 |

La simulazione di .NET Selenium è comunque fantastica, grazie.
Pubblicato su 05/07/2020 12:46:59 |
Sembra buono
Pubblicato su 18/08/2020 10:45:14 |
Imparare. Studiare duramente.
Pubblicato su 10/10/2020 17:34:08 |
Vieni a imparare, grazie
Pubblicato su 28/10/2020 17:26:20 |
Molto bene.  
Pubblicato su 03/11/2020 00:20:29 |
Grazie~~ Impara a imparare ~~~~~~~~
Pubblicato su 26/11/2020 21:26:44 |
Grazie LZ per aver condiviso
Pubblicato su 24/01/2021 03:02:19 |
Perché devi rispondere per vederlo?
Pubblicato su 06/03/2021 20:49:30 |
1111111111111111
Pubblicato su 02/05/2021 20:12:35 |
Imparare. Studiare duramente.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com