Poptávka
Protože je simulační požadavek na přihlášení příliš složitý, chceme použít Selenium k otevření Google Chrome, abychom získali hodnotu cookie po přihlášení, a poté přenést obsah cookie, abychom si vyžádali příslušné rozhraní webu pro automatizaci testu.
Selen
Selenium je nástroj pro testování webových aplikací. Testy Selenium běží přímo v prohlížeči, jako by je dělal skutečný uživatel. Podporované prohlížeče zahrnují IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera a další. Hlavní funkce tohoto nástroje zahrnují: Testování kompatibility prohlížečů – otestujte svou aplikaci, zda funguje dobře v různých prohlížečích a operačních systémech. Testovací funkčnost systému – Vytvářet regresní testy pro ověření funkčnosti softwaru a požadavků uživatele. Podporuje automatické zaznamenávání akcí a automatické generování testovacích skriptů v různých jazycích, jako jsou .Net, Java, Perl atd.
Nejprve vytvoříme nový C# konzolový projekt s názvem projektu "chrome-cookie-demo" a verze .NET frameworku je 4.7.2.
Příkaz nuget je následující:
Po instalaci Selenium.WebDriver.ChromeDriver bude v adresáři pro ladění projektů vygenerován chromedriver.exe soubor. Selenium.WebDriver je chápán jako abstraktní rozhraní, a poté každý prohlížeč toto rozhraní implementuje samostatně. Selenium.WebDriver zavolá Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe spustí nativně nainstalovaný Google Chrome podle získaných parametrů a poté provede odpovídající operaci.
Samozřejmě je tu předpoklad,Počítač musí mít nainstalovaný Google Chrome。
Kód je následující:
Chyba je následující:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
To znamená, že aktuální ovladač nepodporuje verzi 83 Google Chrome, zkontrolujte verzi nainstalovanou na počítači následovně:
(Verze 71.0.3578.98)
Aktualizace vašeho nativního Google Chrome a jeho restartování problém opraví (nebo nainstalujte verzi prohlížeče, která splňuje požadavky).
Snažíme se znovu spustit demo projekt chrome-cookie a zjistíme, že stránka se dá otevřít normálně, ale,Webová stránka není přihlášena。 Když kliknete na prohlížeč a otevřete tuto stránku, stav je přihlášen.
Řešením je nastavit parametr user-data-dir pomocí následujícího kódu:
Program restartujeme a zobrazí se následující chyba:
Nezpracovaná výjimka: OpenQA.Selenium.WebDriverVýjimka: neplatný argument: adresář uživatelských dat je již v používání, prosím zadejte unikátní hodnotu pro --user-data-dir argument, nebo nepoužívejte -- user-data-dir at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, parametry Dictionary'2) In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) V OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) V OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService služba, možnosti ChromeOptions, pří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: řádek číslo 36 Zhruba řečeno, složka byla obsazená, prosím ji nahraďte, řešení:Zavřete otevřený Google Chrome a použijte složku uživatelských dat pro program "chrome-cookie-demo", který jsme napsali。
Získejte webové cookies
driver.manage().getCookies(); Vrátit seznam všech cookies driver.manage().getCookieNamed(arg0); Vraťte konkrétní cookie podle názvu driver.manage().addCookie(arg0); Vytvořte a přidejte cookie driver.manage().deleteCookie(arg0); Smazat konkrétní cookie driver.manage().deleteCookieNamed(arg0); Smazat konkrétní cookie podle názvu driver.manage().deleteAllCookies(); Smažte všechny cookies Dokumentace:Přihlášení k hypertextovému odkazu je viditelné.
Testujeme, abychom získali všechny webové cookies
Objev,Informace o cookies si můžete přečíst na "HttpOnly", jak je znázorněno na obrázku níže:
Samozřejmě musíme převést informace o cookies na řetězec, pak simulovat rozhraní pro odesílání požadavků a připojit metodu převodu do řetězce ve zdrojovém kódu.
Stažení zdrojového kódu:
Přihlášení k hypertextovému odkazu je viditelné.
(Konec)
|