Dopyt
Keďže požiadavka na prihlásenie simulácie je príliš zložitá, chceme použiť Selenium na otvorenie Google Chrome, aby sme získali hodnotu cookie po prihlásení, a potom prenášať obsah cookie, aby sme požiadali o príslušné rozhranie webu na automatizáciu testu.
Selén
Selenium je nástroj na testovanie webových aplikácií. Testy Selenium bežia priamo v prehliadači, akoby ich robil skutočný používateľ. Podporované prehliadače zahŕňajú IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera a ďalšie. Hlavné funkcie tohto nástroja zahŕňajú: Testovanie kompatibility prehliadačov – otestujte svoju aplikáciu, či dobre funguje na rôznych prehliadačoch a operačných systémoch. Funkčnosť testovacieho systému – Vytváranie regresných testov na overenie funkčnosti softvéru a požiadaviek používateľa. Podporuje automatické zaznamenávanie akcií a automatické generovanie testovacích skriptov v rôznych jazykoch ako .Net, Java, Perl a podobne.
Najprv vytvorme nový C# konzolový projekt s názvom projektu "chrome-cookie-demo" a verzia .NET frameworku je 4.7.2.
Príkaz nuget je nasledovný:
Po inštalácii Selenium.WebDriver.ChromeDriver bude v adresári projektového ladenia vygenerovaný chromedriver.exe súbor. Selenium.WebDriver je chápaný ako abstraktné rozhranie, a potom každý prehliadač implementuje toto rozhranie samostatne, Selenium.WebDriver zavolá Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe spustí natívne nainštalovaný Google Chrome podľa získaných parametrov a následne vykoná príslušnú operáciu.
Samozrejme, existuje predpoklad,Počítač musí mať nainštalovaný Google Chrome。
Kód je nasledovný:
Chyba je nasledovná:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
To znamená, že aktuálny ovládač nepodporuje verziu 83 Google Chrome, skontrolujte verziu nainštalovanú na zariadení nasledovne:
(Verzia 71.0.3578.98)
Aktualizácia vášho natívneho Google Chrome a jeho reštart problém opraví (alebo nainštalujte verziu prehliadača, ktorá spĺňa požiadavky).
Snažíme sa znovu spustiť demo projekt chrome-cookie-a a zistíme, že stránka sa dá normálne otvoriť, ale,Webová stránka nie je prihlásená。 Keď kliknete na prehliadač a otvoríte túto stránku, stav je prihlásený.
Riešením je nastaviť parameter user-data-dir s nasledujúcim kódom:
Reštartujeme program a zobrazí sa nasledujúca chyba:
Nespracovaná výnimka: OpenQA.Selenium.WebDriverVýnimka: neplatný argument: adresár používateľských dát je už v prevádzke, prosím, zadajte jedinečnú hodnotu pre --user-data-dir argument, alebo nepoužívajte -- user-data-dir na OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Odpoveď na chybu) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters) In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) V OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) V OpenQA.Selenium.Chrome.ChromeDriver: ctor(služba ChromeDriverService, možnosti ChromeOptions, príkaz TimeSpan) V OpenQA.Selenium.Chrome.ChromeDriver: ctor(služba ChromeDriverService, možnosti ChromeOptions) V chrome_cookie_demo. Program.Main(String[] args) Lokalita C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: riadok číslo 36 Približne povedané, zložka je obsadená, prosím, vráťte ju, riešenie:Zatvorte otvorený Google Chrome a použite priečinok používateľských dát pre program "chrome-cookie-demo", ktorý sme napísali。
Získajte webové cookies
driver.manage().getCookies(); Vrátiť zoznam všetkých cookies driver.manage().getCookieNamed(arg0); Vráťte konkrétny cookie podľa názvu driver.manage().addCookie(arg0); Vytvorte a pridajte cookie driver.manage().deleteCookie(arg0); Vymazať konkrétny cookie driver.manage().deleteCookieNamed(arg0); Vymažte konkrétny cookie podľa názvu driver.manage().deleteAllCookies(); Vymažte všetky cookies Dokumentácia:Prihlásenie na hypertextový odkaz je viditeľné.
Testujeme, aby sme získali všetky webové cookies
Objav,Informácie o cookies si môžete prečítať na "HttpOnly", ako je znázornené na obrázku nižšie:
Samozrejme, musíme previesť informácie o cookies na reťazec, potom simulovať rozhranie na odosielanie požiadaviek a pripojiť metódu konverzie do reťazca v zdrojovom kóde.
Stiahnutie zdrojového kódu:
Prihlásenie na hypertextový odkaz je viditeľné.
(Koniec)
|