paklausa
Kadangi modeliavimo prisijungimo užklausa yra per sudėtinga, norime naudoti seleną, kad atidarytume "Google Chrome", kad gautume slapuko vertę po prisijungimo, o tada perkelti slapuko turinį, kad paprašytume atitinkamos svetainės sąsajos automatizuoti testą.
Selenas
Selenas yra žiniatinklio programų testavimo įrankis. Seleno testai atliekami tiesiai naršyklėje, tarsi tai darytų tikras vartotojas. Palaikomos naršyklės: IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera ir kt. Pagrindinės šio įrankio savybės: Naršyklės suderinamumo testavimas – išbandykite programą, kad sužinotumėte, ar ji gerai veikia skirtingose naršyklėse ir operacinėse sistemose. Tikrinti sistemos funkcionalumą – kurti regresijos testus, kad patikrintumėte programinės įrangos funkcionalumą ir vartotojo reikalavimus. Jis palaiko automatinį veiksmų įrašymą ir automatinį testavimo scenarijų generavimą įvairiomis kalbomis, tokiomis kaip .Net, Java, Perl ir kt.
Pirmiausia sukurkime naują C# konsolės projektą su projekto pavadinimu "chrome-cookie-demo", o .NET framework versija yra 4.7.2.
Nuget komanda yra tokia:
Įdiegus Selenium.WebDriver.ChromeDriver, projekto derinimo kataloge bus sugeneruotas chromedriver.exe failas. Selenium.WebDriver suprantama kaip abstrakti sąsaja, o tada kiekviena naršyklė pati įgyvendina šią sąsają, Selenium.WebDriver iškvies Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe paleis įdiegtą "Google Chrome" pagal gautus parametrus ir atliks atitinkamą operaciją.
Žinoma, yra būtina sąlyga,Kompiuteryje turi būti įdiegta "Google Chrome"。
Kodas yra toks:
Klaida yra tokia:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Tai reiškia, kad dabartinė tvarkyklė nepalaiko "Google Chrome" 83 versijos, patikrinkite kompiuteryje įdiegtą versiją taip:
(Versija 71.0.3578.98)
Atnaujinus vietinę "Google Chrome" ir paleidus ją iš naujo, tai bus išspręsta (arba įdiegta reikalavimus atitinkanti naršyklės versija).
Mes bandome pakartotinai paleisti chrome-cookie-demo projektą ir rasti, kad svetainę galima atidaryti normaliai, bet,Tinklalapis neprisijungęs。 Spustelėjus naršyklę, kad atidarytumėte šią svetainę, būsena yra prisijungta.
Sprendimas yra nustatyti parametrą user-data-dir tokiu kodu:
Iš naujo paleidžiame programą ir gauname šią klaidą:
Neapdorota išimtis: OpenQA.Selenium.WebDriverException: neleistinas argumentas: vartotojo duomenų katalogas jau naudojamas, nurodykite unikalią reikšmę argumentui --user-data-dir arba nenaudokite -- vartotojo duomenys-dir adresu OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response ErrorResponse) OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parametrai) OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) In OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor komandaVykdytojas, ICapabilities desiredCapabilities) In OpenQA.Selenium.Chrome.ChromeDriver: ctor("ChromeDriverService" paslauga, "ChromeOptions" parinktys, "TimeSpan" komandaSkirtasis laikas) In OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService paslauga, ChromeOptions parinktys) chrome_cookie_demo. Program.Main(String[] args) Vieta C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: eilutės numeris 36 Grubiai tariant, aplankas buvo užimtas, pakeiskite jį, sprendimas:Uždarykite atidarytą "Google Chrome" ir naudokite vartotojo duomenų aplanką "chrome-cookie-demo" programai, kurią parašėme。
Žiniatinklio slapukų gavimas
driver.manage().getCookies(); Grąžinti visų slapukų sąrašą driver.manage().getCookieNamed(arg0); Grąžinti konkretų slapuką pagal pavadinimą driver.manage().addCookie(arg0); Sukurkite ir pridėkite slapuką driver.manage().deleteCookie(arg0); Ištrinti konkretų slapuką driver.manage().deleteCookieNamed(arg0); Ištrinkite konkretų slapuką pagal pavadinimą driver.manage().deleteAllCookies(); Ištrinti visus slapukus Dokumentacija:Hipersaito prisijungimas matomas.
Mes testuojame, kad gautume visus žiniatinklio slapukus
Atradimas,Galite perskaityti "HttpOnly" slapukų informaciją, kaip parodyta toliau pateiktame paveikslėlyje:
Žinoma, turime konvertuoti slapukų informaciją į eilutę, tada imituoti užklausos pateikimo sąsają ir pridėti jos konvertavimo į šaltinio kodo eilutę metodą.
Šaltinio kodo atsisiuntimas:
Hipersaito prisijungimas matomas.
(Pabaiga)
|