Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 181846|Atsakyti: 27

[Šaltinis] .Net/C# seleno automatiniai testai gauna slapukų reikšmes

[Kopijuoti nuorodą]
Paskelbta 2020-07-05 11:44:34 | | | |
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)

Vertinimas pagal

Dalyvių skaičius1MB+1 Prisidėti prie+1 Žlugimo priežastis
jgskingstone + 1 + 1 Labai galingas!

Peržiūrėti visus įvertinimus





Ankstesnis:EF (CodeFirst) + MySQL
Kitą:MSSQL sąlyginė užklausa WHERE nepaiso sąlygos
Paskelbta 2022-05-14 10:22:54 |
Raginimas:Autoriai uždrausti arba pašalintas turinys automatiškai blokuojamas
Paskelbta 2022-05-14 10:21:26 |
Raginimas:Autoriai uždrausti arba pašalintas turinys automatiškai blokuojamas
Paskelbta 2021-11-27 17:31:04 |

.NET seleno modeliavimas vis dar nuostabus, ačiū.
Paskelbta 2020-07-05 12:46:59 |
Atrodo gerai
Paskelbta 2020-08-18 10:45:14 |
Mokymasis. Sunkiai mokytis.
Paskelbta 2020-10-10 17:34:08 |
Ateikite ir mokykitės, ačiū
Paskelbta 2020-10-28 17:26:20 |
labai gerai, labai geras.  
Paskelbta 2020-11-03 00:20:29 |
Ačiū ~~ Išmokite mokytis ~~~~~~~~
Paskelbta 2020-11-26 21:26:44 |
Ačiū LZ už pasidalinimą
Paskelbta 2021-01-24 03:02:19 |
Kodėl turite atsakyti, kad pamatytumėte?
Paskelbta 2021-03-06 20:49:30 |
1111111111111111
Paskelbta 2021-05-02 20:12:35 |
Mokymasis. Sunkiai mokytis.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com