Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 177007|Jawab: 27

[Sumber] Pengujian otomatis .Net/C# Selenium mendapatkan nilai cookie

[Salin tautan]
Diposting pada 05/07/2020 11.44.34 | | | |
permintaan

Karena permintaan simulasi untuk login terlalu rumit, kami ingin menggunakan Selenium untuk membuka Google Chrome untuk mendapatkan nilai cookie setelah login, dan kemudian membawa konten cookie untuk meminta antarmuka situs web yang relevan untuk mengotomatiskan pengujian.

Selenium

Selenium adalah alat untuk pengujian aplikasi web. Tes selenium berjalan langsung di browser, seolah-olah pengguna sungguhan yang melakukannya. Browser yang didukung termasuk IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, dll. Fitur utama dari alat ini meliputi: Pengujian kompatibilitas browser - uji aplikasi Anda untuk melihat apakah aplikasi tersebut berfungsi dengan baik di browser dan sistem operasi yang berbeda. Fungsionalitas sistem pengujian – Buat pengujian regresi untuk memverifikasi fungsionalitas perangkat lunak dan persyaratan pengguna. Ini mendukung perekaman tindakan otomatis dan pembuatan otomatis skrip pengujian dalam berbagai bahasa seperti .Net, Java, Perl, dll.

Pertama, mari kita buat proyek konsol C# baru dengan nama proyek "chrome-cookie-demo" dan versi kerangka kerja .NET adalah 4.7.2.

Perintah nuget adalah sebagai berikut:

Setelah penginstalan Selenium.WebDriver.ChromeDriver, file chromedriver.exe akan dihasilkan di direktori debug proyek.
Selenium.WebDriver dipahami sebagai antarmuka abstrak, dan kemudian setiap browser mengimplementasikan antarmuka ini dengan sendirinya, Selenium.WebDriver akan memanggil Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe akan memulai Google Chrome yang diinstal secara native sesuai dengan parameter yang diperoleh, dan kemudian melakukan operasi yang sesuai.

Tentu saja, ada prasyarat,Komputer harus menginstal Google Chrome

Kodenya adalah sebagai berikut:

Kesalahannya adalah sebagai berikut:


System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83



Artinya, driver saat ini tidak mendukung Google Chrome versi 83, periksa versi yang diinstal pada mesin sebagai berikut:


(Versi 71.0.3578.98)

Memutakhirkan Google Chrome asli Anda dan memulai ulang akan memperbaikinya (atau menginstal versi browser yang memenuhi persyaratan).

Kami mencoba menjalankan kembali proyek chrome-cookie-demo dan menemukan bahwa situs dapat dibuka secara normal, tetapi,Halaman web tidak masuk。 Saat Anda mengklik browser untuk membuka situs ini, statusnya masuk.

Solusinya adalah dengan mengatur parameter user-data-dir dengan kode berikut:

Kami memulai ulang program dan mendapatkan kesalahan berikut:

Pengecualian yang tidak ditangani: OpenQA.Selenium.WebDriverException: argumen tidak valid: direktori data pengguna sudah digunakan, harap tentukan nilai unik untuk argumen --user-data-dir, atau jangan gunakan -- pengarah data-pengguna
   di OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   di OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameter)
   Di OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   Di OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   Di OpenQA.Selenium.Chrome.ChromeDriver: ctor(Layanan ChromeDriverService, opsi ChromeOptions, perintah TimeSpanTimeout)
   Di OpenQA.Selenium.Chrome.ChromeDriver: ctor(Layanan ChromeDriverService, opsi ChromeOptions)
   Dalam chrome_cookie_demo. Program.Main(String[] args) Lokasi C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: nomor baris 36

Secara kasar, folder telah ditempati, silakan ganti, solusinya:Tutup Google Chrome Anda yang terbuka dan gunakan folder data pengguna untuk program "chrome-cookie-demo" yang kami tulis

Dapatkan cookie web

driver.manage().getCookies();   Kembalikan Daftar Semua Cookie
driver.manage().getCookieNamed(arg0);  Mengembalikan cookie tertentu sesuai dengan nama
driver.manage().addCookie(arg0);   Buat dan tambahkan cookie
driver.manage().deleteCookie(arg0);  Menghapus cookie tertentu
driver.manage().deleteCookieNamed(arg0); Hapus cookie tertentu sesuai dengan Nama
driver.manage().deleteAllCookies();  Hapus semua cookie

Dokumentasi:Login hyperlink terlihat.

Kami menguji untuk mendapatkan semua cookie web

Penemuan,Anda dapat membaca informasi cookie "HttpOnly", seperti yang ditunjukkan pada gambar di bawah ini:



Tentu saja, kita perlu mengubah informasi cookie menjadi string, dan kemudian mensimulasikan antarmuka pengiriman permintaan, dan melampirkan metode mengonversinya menjadi string dalam kode sumber.

Unduhan kode sumber:

Login hyperlink terlihat.

(Akhir)

Skor

Jumlah peserta1MB+1 sumbang+1 Roboh alasan
jgskingstone + 1 + 1 Sangat kuat!

Lihat semua penilaian





Mantan:EF(Kode Pertama) + MySQL
Depan:Kueri bersyarat MSSQL WHERE mengabaikan kondisi
Diposting pada 14/05/2022 10.22.54 |
Cepat:Penulis dilarang atau konten yang dihapus secara otomatis diblokir
Diposting pada 14/05/2022 10.21.26 |
Cepat:Penulis dilarang atau konten yang dihapus secara otomatis diblokir
Diposting pada 27/11/2021 17.31.04 |

Simulasi Selenium .NET masih luar biasa, terima kasih.
Diposting pada 05/07/2020 12.46.59 |
Sepertinya bagus
Diposting pada 18/08/2020 10.45.14 |
Pembelajaran. Belajar dengan giat.
Diposting pada 10/10/2020 17.34.08 |
Datang dan belajar, terima kasih
Diposting pada 28/10/2020 17.26.20 |
Bagus sekali.  
Diposting pada 03/11/2020 00.20.29 |
Terima kasih~~ Belajar belajar ~~~~~~~~
Diposting pada 26/11/2020 21.26.44 |
Terima kasih LZ telah berbagi
Diposting pada 24/01/2021 03.02.19 |
Mengapa Anda harus membalas untuk melihatnya?
Diposting pada 06/03/2021 20.49.30 |
1111111111111111
Diposting pada 02/05/2021 20.12.35 |
Pembelajaran. Belajar dengan giat.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com