Kysyntä
Koska simulaatiopyyntö kirjautumisesta on liian monimutkainen, haluamme käyttää Seleniumia avataksemme Google Chromen saadaksemme evästearvon kirjautumisen jälkeen, ja sitten kantaa evästesisältöä pyytääksemme verkkosivuston relevanttia käyttöliittymää testin automatisointia varten.
Seleeni
Selenium on työkalu verkkosovellusten testaukseen. Seleenitestit suoritetaan suoraan selaimessa, ikään kuin oikea käyttäjä tekisi sen. Tuettuja selaimia ovat IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera jne. Tämän työkalun pääominaisuuksia ovat: Selaimen yhteensopivuustestaus – testaa sovellustasi nähdäksesi, toimiiko se hyvin eri selaimissa ja käyttöjärjestelmissä. Testaa järjestelmän toiminnallisuus – Luo regressiotestejä ohjelmiston toiminnallisuuden ja käyttäjän vaatimusten varmistamiseksi. Se tukee toimintojen automaattista tallennusta ja testiskriptien automaattista generointia eri kielillä, kuten .Net, Java, Perl jne.
Ensin luodaan uusi C#-konsoliprojekti projektin nimellä "chrome-cookie-demo" ja .NET framework-versio on 4.7.2.
Nuget-komento on seuraava:
Selenium.WebDriver.ChromeDriverin asennuksen jälkeen projektin debug-hakemistossa luodaan chromedriver.exe-tiedosto. Selenium.WebDriver ymmärretään abstraktina rajapintana, ja sitten jokainen selain toteuttaa tämän rajapinnan itsenäisesti, Selenium.WebDriver kutsuu Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe käynnistää natiivisti asennetun Google Chromen saatujen parametrien mukaisesti ja suorittaa vastaavan toiminnon.
Tietenkin on olemassa edellytys,Tietokoneessa täytyy olla Google Chrome asennettuna。
Koodi on seuraava:
Virhe on seuraava:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Tämä tarkoittaa, että nykyinen ajuri ei tue Google Chrome -versiota 83, tarkista koneelle asennettu versio seuraavasti:
(Versio 71.0.3578.98)
Päivittämällä natiivin Google Chromen ja käynnistämällä sen uudelleen ongelman (tai asentamalla selaimen version, joka täyttää vaatimukset).
Yritämme ajaa uudelleen chrome-eväste-demoprojektin ja huomaamme, että sivusto voidaan avata normaalisti, mutta,Verkkosivu ei ole kirjautuneena sisään。 Kun klikkaat selainta avataksesi tämän sivuston, tila on kirjautunut sisään.
Ratkaisu on asettaa user-data-dir -parametri seuraavalla koodilla:
Käynnistämme ohjelman uudelleen ja saamme seuraavan virheen:
Käsittelemätön poikkeus: OpenQA.Selenium.WebDriverException: virheellinen argumentti: käyttäjätietohakemisto on jo käytössä, määritä yksilöllinen arvo --user-data-dir -argumentille, tai älä käytä -- user-data-dir osoitteessa OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) osoitteessa OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parametrit) OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilitys desiredCapabilities) OpenQA.Selenium.Remote.RemoteWebDriverissa: ctor(ICommandExecutor commandExecutor, ICapabilitys desiredCapabilities) OpenQA.Selenium.Chrome.ChromeDriverissa: ctor(ChromeDriverService-palvelu, ChromeOptions-asetukset, TimeSpan commandTimeout) OpenQA.Selenium.Chrome.ChromeDriverissa: ctor(ChromeDriverService-palvelu, ChromeOptions-asetukset) Vuonna chrome_cookie_demo. Program.Main(String[] args) Sijainti C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: rivinumero 36 Karkeasti ottaen, kansio on varattu, vaihda se, ratkaisu:Sulje avoin Google Chrome ja käytä käyttäjätietokansiota kirjoittamallemme "chrome-cookie-demo"-ohjelmalle。
Hanki verkkoevästeet
driver.manage().getCookies(); Palauta kaikkien keksien lista driver.manage().getCookieNamed(arg0); Palauta tietty eväste nimen mukaan driver.manage().addCookie(arg0); Luo ja lisää eväste driver.manage().deleteCookie(arg0); Poista tietty eväste driver.manage().deleteCookieNamed(arg0); Poista tietty eväste nimen mukaan driver.manage().deleteAllCookies(); Poista kaikki evästeet Dokumentaatio:Hyperlinkin kirjautuminen on näkyvissä.
Testaamme saadaksemme kaikki verkkoevästeet
Löytö,Voit lukea evästetiedot sivustolta "HttpOnly", kuten alla olevassa kuvassa näkyy:
Tietenkin meidän täytyy muuntaa evästetiedot merkkijonoksi, simuloida pyyntöjen lähetysrajapinta ja liittää muunnosmenetelmä lähdekoodin merkkijonoon.
Lähdekoodin lataus:
Hyperlinkin kirjautuminen on näkyvissä.
(Loppu)
|