Pieprasījums
Tā kā simulācijas pieteikšanās pieprasījums ir pārāk sarežģīts, mēs vēlamies izmantot Selenium, lai atvērtu Google Chrome, lai iegūtu sīkfaila vērtību pēc pieteikšanās, un pēc tam pārnest sīkfaila saturu, lai pieprasītu attiecīgo vietnes saskarni, lai automatizētu testu.
Selēns
Selēns ir rīks tīmekļa lietojumprogrammu testēšanai. Selēna testi darbojas tieši pārlūkprogrammā, it kā to darītu reāls lietotājs. Atbalstītās pārlūkprogrammas ir IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera utt. Šī rīka galvenās iezīmes ietver: Pārlūkprogrammas saderības pārbaude - pārbaudiet savu lietojumprogrammu, lai redzētu, vai tā labi darbojas dažādās pārlūkprogrammās un operētājsistēmās. Sistēmas funkcionalitātes pārbaude — izveidojiet regresijas testus, lai pārbaudītu programmatūras funkcionalitāti un lietotāju prasības. Tas atbalsta automātisku darbību ierakstīšanu un automātisku testa skriptu ģenerēšanu dažādās valodās, piemēram, .Net, Java, Perl utt.
Pirmkārt, izveidosim jaunu C# konsoles projektu ar projekta nosaukumu "chrome-cookie-demo" un .NET framework versija ir 4.7.2.
Nuget komanda ir šāda:
Pēc Selenium.WebDriver.ChromeDriver instalēšanas projekta atkļūdošanas direktorijā tiks ģenerēts chromedriver.exe fails. Selenium.WebDriver tiek saprasts kā abstrakts interfeiss, un tad katra pārlūkprogramma pati īsteno šo saskarni, Selenium.WebDriver izsauks Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe sāks sākotnēji instalēto Google Chrome saskaņā ar iegūtajiem parametriem un pēc tam veiks atbilstošo darbību.
Protams, ir priekšnoteikums,Datorā jābūt instalētai pārlūkprogrammai Google Chrome。
Kods ir šāds:
Kļūda ir šāda:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Tas nozīmē, ka pašreizējais draiveris neatbalsta Google Chrome 83. versiju, pārbaudiet ierīcē instalēto versiju šādi:
(Versija 71.0.3578.98)
Jauninot vietējo Google Chrome un restartējot to, tas tiks novērsts (vai instalēt pārlūkprogrammas versiju, kas atbilst prasībām).
Mēs cenšamies atkārtoti palaist chrome-cookie-demo projektu un konstatēt, ka vietni var atvērt normāli, bet,Tīmekļa lapa nav pieteikusies。 Noklikšķinot uz pārlūkprogrammas, lai atvērtu šo vietni, statuss ir pieteicies.
Risinājums ir iestatīt parametru user-data-dir ar šādu kodu:
Mēs restartējam programmu un saņemam šādu kļūdu:
Neapstrādāts izņēmums: OpenQA.Selenium.WebDriverIzņēmums: nederīgs arguments: lietotāja datu direktorijs jau tiek izmantots, lūdzu, norādiet unikālu vērtību argumentam --user-data-dir vai neizmantojiet -- user-data-dir vietnē OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response ErrorResponse) pie OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parametri) OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) In OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor komandaIzpildītājs, ICapabilities desiredCapabilities) In OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService pakalpojums, ChromeOptions opcijas, TimeSpan komandaTimeout) In OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService pakalpojums, ChromeOptions opcijas) chrome_cookie_demo. gadā. Program.Main(String[] args) Atrašanās vieta C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: rindas numurs 36 Aptuveni runājot, mape ir aizņemta, lūdzu, nomainiet to, risinājums:Aizveriet atvērto Google Chrome un izmantojiet lietotāja datu mapi mūsu rakstītajai programmai "chrome-cookie-demo"。
Tīmekļa sīkfailu iegūšana
driver.manage().getCookies(); Atgriezt visu sīkdatņu sarakstu driver.manage().getCookieNamed(arg0); Atgriezt konkrētu sīkfailu atbilstoši nosaukumam driver.manage().addCookie(arg0); Sīkdatnes izveide un pievienošana driver.manage().deleteCookie(arg0); Dzēst konkrētu sīkfailu driver.manage().deleteCookieNamed(arg0); Dzēst konkrēto sīkfailu saskaņā ar nosaukumu driver.manage().deleteAllCookies(); Dzēst visas sīkdatnes Dokumentācija:Hipersaites pieteikšanās ir redzama.
Mēs pārbaudām, lai iegūtu visas tīmekļa sīkdatnes
Atklāšana,Jūs varat izlasīt sīkdatņu informāciju vietnē "HttpOnly", kā parādīts attēlā:
Protams, mums ir jāpārvērš sīkfailu informācija virknē un pēc tam jāsimulē pieprasījuma iesniegšanas saskarne un jāpievieno metode, kā to pārvērst par virkni avota kodā.
Avota koda lejupielāde:
Hipersaites pieteikšanās ir redzama.
(Beigas)
|