Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 177007|Yanıt: 27

[Kaynak] .Net/C# Selenyum otomatik testleri çerez değerlerini alır

[Bağlantıyı kopyala]
Yayınlandı 5.07.2020 11:44:34 | | | |
Talep

Giriş için simülasyon talebi çok karmaşık olduğundan, giriş sonrası çerez değerini almak için Selenium kullanmak ve ardından web sitesinin ilgili arayüzünden testi otomatikleştirmek için çerez içeriğini taşımak istiyoruz.

Selenyum

Selenyum, web uygulama testi için bir araçtır. Selenyum testleri doğrudan tarayıcıda çalışır, sanki gerçek bir kullanıcı yapıyormuş gibi. Desteklenen tarayıcılar arasında IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera vb. bulunmaktadır. Bu aracın ana özellikleri şunlardır: Tarayıcı uyumluluk testi - uygulamanızı farklı tarayıcılar ve işletim sistemlerinde iyi çalışıp çalışmadığını test edin. Sistem işlevselliğini test etmek – Yazılım işlevselliğini ve kullanıcı gereksinimlerini doğrulamak için regresyon testleri oluşturun. Eylemlerin otomatik kaydını ve .Net, Java, Perl gibi farklı dillerde otomatik test betikleri oluşturulmasını destekler.

Öncelikle, "chrome-cookie-demo" proje adıyla yeni bir C# konsol projesi oluşturalım ve .NET framework sürümü 4.7.2.

Nuget komutu şöyledir:

Selenium.WebDriver.ChromeDriver yüklendikten sonra, proje hata ayıklama dizininde chromedriver.exe bir dosya oluşturulacaktır.
Selenium.WebDriver, soyut bir arayüz olarak anlaşılır ve her tarayıcı bu arayüzü kendi başına uygular, Selenium.WebDriver Selenium.WebDriver.ChromeDriver(chromedriver.exe) adını çağırır chromedriver.exe elde edilen parametrelere göre yerel olarak yüklenmiş Google Chrome'u başlatır ve ilgili işlemi gerçekleştirir.

Elbette, bir ön koşul var,Bilgisayarda Google Chrome yüklü olmalı

Kod şöyledir:

Hata şöyledir:


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



Bu, mevcut sürücünün Google Chrome'un 83 sürümünü desteklemediği anlamına gelir, makineye yüklü sürümü aşağıdaki şekilde kontrol edin:


(Sürüm 71.0.3578.98)

Yerel Google Chrome'unuzu yükseltip yeniden başlatmak sorunu çözer (veya gereksinimleri karşılayan tarayıcı sürümünü yükleyerek).

Chrome-cookie-demo projesini yeniden çalıştırmaya çalışıyoruz ve sitenin normal şekilde açılabileceğini fark ediyoruz, ama,Web sayfası giriş yapılmamıştır。 Bu siteyi açmak için tarayıcıya tıkladığınızda, durum giriş yapmış olur.

Çözüm, user-data-dir parametresini aşağıdaki kodla ayarlamaktır:

Programı yeniden başlattık ve şu hatayı alıyoruz:

Yönetilmeyen istisna: OpenQA.Selenium.WebDriverException: geçersiz argüman: kullanıcı veri dizini zaten kullanılıyor, lütfen --user-data-dir argümanı için benzersiz bir değer belirtin veya -- kullanmayın user-data-dir
   OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) adresinde.
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
   OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilitys desiredCapabilities) içinde
   OpenQA.Selenium.Remote.RemoteWebDriver içinde: ctor(ICommandExecutor komutExecutor, ICapabilitys desiredCapabilities)
   OpenQA.Selenium.Chrome.ChromeDriver içinde: ctor(ChromeDriverService servisi, ChromeOptions options, TimeSpan commandTimeout)
   OpenQA.Selenium.Chrome.ChromeDriver içinde: ctor(ChromeDriverService hizmeti, ChromeOptions seçenekleri)
   chrome_cookie_demo. Program.Main(String[] args) Konum C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: satır numarası 36

Kabaca olarak, klasör dolup taşandı, lütfen değiştirin, çözüm:Açık Google Chrome'unuzu kapatın ve yazdığımız "chrome-cookie-demo" programı için kullanıcı veri klasörünü kullanın

Web çerezleri alın

driver.manage().getCookies();   Tüm Kurabiyelerin Listesini Geri Gönder
driver.manage().getCookieNamed(arg0);  İsme göre belirli bir kurabiyeni geri gönder
driver.manage().addCookie(arg0);   Kurabiyeni oluştur ve ekle
driver.manage().deleteCookie(arg0);  Belirli çerezleri sil
driver.manage().deleteCookieNamed(arg0); İsme göre belirli çerezleri sil
driver.manage().deleteAllCookies();  Tüm çerezleri sil

Belge:Bağlantı girişi görünür.

Tüm web çerezlerini test ediyoruz

Keşif,"HttpOnly" çerez bilgilerini okuyabilirsiniz., aşağıdaki şekilde gösterildiği gibi:



Elbette, çerez bilgisini bir diziye dönüştürmemiz gerekiyor, ardından istek gönderme arayüzünü simüle edip dönüştürme yöntemini kaynak koddaki bir dizeye bağlamamız gerekiyor.

Kaynak kodu indirme:

Bağlantı girişi görünür.

(Son)

Puan

Katılımcı sayısı1MB+1 Katkı+1 Çökmek sebep
jgskingstone + 1 + 1 Çok güçlü!

Tüm puanları gör





Önceki:EF(CodeFirst) + MySQL
Önümüzdeki:MSSQL koşullu sorgu WHERE koşulu görmezden gelir
Yayınlandı 14.05.2022 10:22:54 |
Istemi:Yazarlar yasaklanır veya kaldırılır, içerik otomatik olarak engellenir
Yayınlandı 14.05.2022 10:21:26 |
Istemi:Yazarlar yasaklanır veya kaldırılır, içerik otomatik olarak engellenir
Yayınlandı 27.11.2021 17:31:04 |

.NET Selenium simülasyonu hâlâ harika, teşekkürler.
Yayınlandı 5.07.2020 12:46:59 |
İyi görünüyor
Yayınlandı 18.08.2020 10:45:14 |
Öğrenmek. Çok çalışıyorum.
Yayınlandı 10.10.2020 17:34:08 |
Gel ve öğren, teşekkürler
Yayınlandı 28.10.2020 17:26:20 |
Çok iyi.  
Yayınlandı 3.11.2020 00:20:29 |
Teşekkürler~~ Öğrenmeyi öğrenin ~~~~~~~~
Yayınlandı 26.11.2020 21:26:44 |
Paylaştığın için teşekkürler LZ
Yayınlandı 24.01.2021 03:02:19 |
Neden görmek için cevap vermeniz gerekiyor?
Yayınlandı 6.03.2021 20:49:30 |
1111111111111111
Yayınlandı 2.05.2021 20:12:35 |
Öğrenmek. Çok çalışıyorum.
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com