Kereslet
Mivel a szimulációs bejelentkezési kérés túl bonyolult, a Seleniumot szeretnénk használni, hogy megnyissamme a Google Chrome-ot, hogy megkapjuk a cookie értéket bejelentkezés után, majd a cookie tartalmát hordozzuk, hogy a weboldal megfelelő felületét kérjük a teszt automatizálásához.
Szelénium
A Selénium egy webalkalmazás-tesztelési eszköz. A szeléntesztek közvetlenül a böngészőben futnak, mintha egy valódi felhasználó tenné. A támogatott böngészők közé tartozik az IE (7, 8, 9, 10, 11), a Mozilla Firefox, Safari, Google Chrome, Opera stb. Az eszköz fő funkciói közé tartozik: böngészőkompatibilitási tesztelés – teszteld az alkalmazásodat, hogy jól működik-e különböző böngészőken és operációs rendszereken. Tesztrendszer funkcionalitás – Regressziós tesztek létrehozása a szoftver funkcionalitásának és felhasználói igényeinek ellenőrzésére. Támogatja az automatikus műveletek rögzítését és tesztszkriptek automatikus generálását különböző nyelveken, mint például .Net, Java, Perl stb.
Először is hozzunk létre egy új C# konzolprojektet "chrome-cookie-demo" néven, a .NET keretrendszer verziója pedig 4.7.2.
A nuget parancs a következő:
A Selenium.WebDriver.ChromeDriver telepítése után egy chromedriver.exe fájl generálódik a projekt hibakeresési könyvtárban. A Selenium.WebDriver egy absztrakt felületként értelmezhető, majd minden böngésző önállóan valósítja meg ezt az interfészt, a Selenium.WebDriver hívja a Selenium.WebDriver.ChromeDriver(chromedriver.exe) nevű felületet, chromedriver.exe a megszerzett paraméterek szerint elindítja a natiálisan telepített Google Chrome-ot, majd végrehajtja a megfelelő műveletet.
Természetesen van egy előfeltétel,A számítógépen biztosan Google Chrome van telepítve。
A kódex a következő:
A hiba a következő:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Ez azt jelenti, hogy a jelenlegi illesztőprogram nem támogatja a Google Chrome 83-as verzióját, ellenőrizd a gépen telepített verziót a következőként:
(71.0.3578.98 verzió)
Ha frissíted a natív Google Chrome-odat és újraindítod, az megoldja (vagy telepíted a böngészőverziót, ami megfelel a követelményeknek).
Megpróbáljuk újraindítani a chrome-cookie-demo projektet, és megtaláljuk, hogy az oldal normálisan meg lehet nyitni, de,Az oldal nincs bejelentkezve。 Amikor a böngészőre kattint az oldal megnyitásához, az állapot be van jelentkezve.
A megoldás az, hogy a user-data-dir paramétert a következő kóddal állítsuk be:
Újraindítjuk a programot, és a következő hibát kapjuk:
Kezeletlen kivétel: OpenQA.Selenium.WebDriverException: érvénytelen argument: a felhasználói adatkönyvtár már használatban van, kérjük, adjon meg egy egyedi értéket a --user-data-dir argumentumhoz, vagy ne használja -- user-data-dir az OpenQA.Selenium.Remote.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) az OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters) Az OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilitys desiredCapabilities) fájljain Az OpenQA.Selenium.Remote.RemoteWebDriver fájlban: ctor(ICommandExecutor commandExecutor, ICapabilitys desiredCapabilities) OpenQA.Selenium.Chrome.ChromeDriver fájlban: ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout) OpenQA.Selenium.Chrome.ChromeDriver fájlban: ctor (ChromeDriverService szolgáltatás, ChromeOptions opciók) chrome_cookie_demo-ben. Program.Main(String[] args) Location C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: 36-os sor Nagyjából elfoglalt a mappa foglalt, kérem, cserélje ki, a megoldás:Zárd be a nyitott Google Chrome-odat, és használd a felhasználói adat mappát a "chrome-cookie-demo" programhoz, amit írtunk。
Webes sütikek
driver.manage().getCookies(); Küldd vissza az összes süti listát driver.manage().getCookieNamed(arg0); Adott süti visszaküldése a név szerint driver.manage().addCookie(arg0); Hozd létre és add hozzá a sütit driver.manage().deleteCookie(arg0); Töröld a konkrét sütit driver.manage().deleteCookieNamed(arg0); Töröld a konkrét cookie-t a név szerint driver.manage().deleteAllCookies(); Töröld az összes sütit. Dokumentáció:A hiperlink bejelentkezés látható.
Minden webes sütit tesztelünk
Felfedezés,A "HttpOnly" süti információit elolvashatod, ahogy az alábbi ábrán látható:
Természetesen át kell alakítanunk a cookie információit egy stringpé, majd szimulálni kell a kérésbeküldési felületet, és csatolni kell a konvertálási módszert a forráskódban lévő stringhez.
Forráskód letöltés:
A hiperlink bejelentkezés látható.
(Vége)
|