C# İle Selenium Kullanarak Chrome Tarayıcısını Özelleştirmek: ChromeOptions Kullanımı
C# Selenium ChromeOptions Kullanımı
Selenium, web otomasyonu için popüler bir araçtır ve C# ile kullanarak web tarayıcılarını otomatik olarak kontrol etmemize olanak sağlar. Chrome tarayıcısını özelleştirmek istiyorsanız, ChromeOptions sınıfını kullanabilirsiniz. Bu makalede, C# ve Selenium kullanarak ChromeOptions'u kullanmanın temelini ve yaygın kullanımlarını öğreneceksiniz.
- Selenium ve ChromeDriver Kurulumu:
Öncelikle, Selenium ve ChromeDriver'ı projenize eklemelisiniz. Visual Studio kullanıyorsanız, NuGet Paket Yöneticisi aracılığıyla Selenium.WebDriver ve Selenium.WebDriver.ChromeDriver
paketlerini projenize ekleyebilirsiniz. - ChromeOptions Oluşturma:
ChromeOptions sınıfı, Chrome tarayıcısını özelleştirmemizi sağlar. Aşağıdaki gibi bir örnek oluşturabilirsiniz:
ChromeOptions options = new ChromeOptions();
options.AddArgument("--lang=tr-TR");
IWebDriver driver = new ChromeDriver(options);
driver.Navigate().GoToUrl("https://www.csharpegitimi.com.tr/");
Bu makalede, C# ve Selenium kullanarak ChromeOptions'u nasıl kullanabileceğinizi öğrendiniz. ChromeOptions, Chrome tarayıcısının davranışını ve ayarlarını özelleştirmenize olanak sağlar ve bu da web otomasyonu projelerinizde büyük bir esneklik sağlar. Bu bilgiyi kullanarak, web otomasyon testlerinizi daha etkili bir şekilde yönetebilirsiniz.
Ayrıca ChromeOptions sınıfının kullanabileceğiniz bütün metodlarını aşağıda bulabilirsiniz. Bu metodlar, Chrome tarayıcısını özelleştirmenize yardımcı olabilir:
- AddAdditionalChromeOption
- AddAdditionalOption
- AddArgument
- AddArguments
- AddEncodedExtension
- AddEncodedExtensions
- AddExcludedArgument
- AddExcludedArguments
- AddExtension
- AddExtensions
- AddLocalStatePreference
- AddUserProfilePreference
- AddWindowType
- AddWindowTypes
- EnableMobileEmulation
- GetMergeResult
- SetLoggingPreference
- ToCapabilities
AddAdditionalChromeOption: Bu yöntem, Chromium tabanlı tarayıcıları yapılandırmak için özel ayarlar eklemek için kullanılır. string türünden bir parametre bekler ve bu parametrelerle belirli bir tarayıcı ayarını yapılandırabilirsiniz.
AddArgument: Selenium WebDriver ile tarayıcı başlatırken veya yapılandırırken, tarayıcıyı komut satırı seçenekleri ile başlatmanızı sağlar. Bu seçenekler, tarayıcıyı özel şekilde yapılandırmak veya belirli davranışları etkinleştirmek veya devre dışı bırakmak için kullanılır.
"Komut satırı" burada, tarayıcıyı çalıştırırken kullanılan komut satırı seçeneklerini ifade eder. Örneğin, Google Chrome tarayıcısını komut satırından başlatırken, çeşitli seçenekleri kullanabilirsiniz. İşte birkaç örnek:
- --headless: Tarayıcıyı başsız (headless) modda başlatır. Bu, tarayıcı penceresi görüntülenmeden çalışmasını sağlar.
- --disable-gpu: GPU hızlandırmasını devre dışı bırakır.
- --disable-notifications: Tarayıcı bildirimlerini devre dışı bırakır.
- --lang=en-US: Tarayıcının dilini İngilizce (ABD) olarak ayarlar.
AddArguments:
Birden fazla komut satırı seçeneğini eklemek için kullanılır.
AddEncodedExtension:
Kodlanmış bir eklentiyi eklemek için kullanılır.
AddEncodedExtensions:
Birden fazla kodlanmış eklentiyi eklemek için kullanılır.
AddExcludedArgument: Hariç tutulacak komut satırı seçeneklerini eklemek için kullanılır. AddExcludedArgument yöntemi, belirli bir komut satırı seçeneğini hariç tutmak veya devre dışı bırakmak için kullanılır. Yani, bu yöntemle belirli bir seçeneği kullanmamak veya kullanmamayı tercih etmek için belirtirsiniz.
Örneğin, varsayılan olarak tarayıcıyı başlatırken belirli bir komut satırı seçeneği varsayılan olarak etkinse, AddExcludedArgument yöntemi kullanılarak bu seçeneği devre dışı bırakabilirsiniz. Böylece, bu seçeneğin tarayıcı başlatılırken kullanılmasını engellersiniz.
Örnek olarak, Google Chrome tarayıcısının --disable-gpu komut satırı seçeneğini hariç tutmak istediğinizi varsayalım. İşte nasıl yapabilirsiniz:
AddExcludedArguments:
Birden fazla hariç tutulacak komut satırı seçeneğini eklemek için kullanılır.
AddExtension:
Bir eklentiyi eklemek için kullanılır.
AddExtensions:
Birden fazla eklentiyi eklemek için kullanılır.
AddLocalStatePreference:
Yerel durum tercihlerini eklemek için kullanılır.AddLocalStatePreference yöntemi, Chromium tabanlı bir tarayıcının yerel durum tercihlerini yapılandırmak için kullanılır. "Yerel durum tercihleri", tarayıcı içindeki belirli davranışları veya ayarları kontrol etmek için kullanılan özel tercihler veya yapılandırmalardır. Bu tercihler, tarayıcının yerel durumunu etkiler ve tarayıcı başlatılırken belirli bir tercih yapılandırılabilir.
Örneğin, Chrome tarayıcısının açılırken bazı özel ayarları varsayılan olarak yapmasını istediğinizi düşünün. Bu ayarları AddLocalStatePreference yöntemiyle belirtebilirsiniz.
Örnek olarak, tarayıcının varsayılan olarak "geolocation" (konum bilgisi) hizmetini etkinleştirmesini istediğinizi düşünelim. Şu Kod("options.AddLocalStatePreference("geolocation", true);") ile yapabiliriz.Detaylı Örnekleri konumuz devamında görebilirsiniz.
AddUserProfilePreference:
Kullanıcı profil tercihlerini eklemek için kullanılır.AddUserProfilePreference yöntemi, Chromium tabanlı bir tarayıcının kullanıcı profil tercihlerini ayarlamak için kullanılır. Kullanıcı profil tercihleri, tarayıcı kullanıcısının davranışını ve tercihlerini yansıtan ayarlardır. Bu ayarlar, tarayıcının bir kullanıcı oturumu başlattığında veya belirli bir kullanıcının tercihlerini uyguladığında kullanılır.
Örneğin, Chrome tarayıcısını başlatırken bir kullanıcının oturumunu açmak istediğinizi düşünün ve bu kullanıcının tarayıcı ayarlarını özelleştirmek istiyorsunuz. Bu, AddUserProfilePreference yöntemi ile yapılabilir.
Örnek olarak, tarayıcıyı başlatırken varsayılan olarak İngilizce (ABD) dilini kullanmak istediğinizi düşünelim. İşte bunu şu şekilde("options.AddUserProfilePreference("intl.accept_languages", "en-US");") yapabilirsiniz:
AddWindowType:
Pencere türünü eklemek için kullanılır.AddWindowType yöntemi, Chromium tabanlı bir tarayıcının başlatılma şeklini belirtmek için kullanılır. Pencere türü, tarayıcının hangi modda başlatılacağını belirler. Bu yöntem, tarayıcının bir pencere veya bir sekme olarak başlatılmasını yönetmek için kullanılır.
Başlatılacak pencere türünü belirlemek için AddWindowType yöntemini kullanabilirsiniz. Bu yöntemi kullanarak aşağıdaki türlerden birini belirleyebilirsiniz:
- normal: Tarayıcıyı normal bir pencere olarak başlatır. Bu, tarayıcının geleneksel bir masaüstü penceresi olarak görüntülenmesini sağlar.
- popup: Tarayıcıyı bir pop-up pencere olarak başlatır. Bu, tarayıcının küçük bir pop-up penceresi olarak görüntülenmesini sağlar.
- panel: Tarayıcıyı bir panel olarak başlatır. Bu, tarayıcının bir panel halinde görüntülenmesini sağlar.
AddWindowTypes:
Birden fazla pencere türünü eklemek için kullanılır.
EnableMobileEmulation:
Mobil simülasyonunu etkinleştirmek için kullanılır.EnableMobileEmulation yöntemi, Chromium tabanlı bir tarayıcının mobil cihazlarda nasıl görüneceğini ve davranacağını simüle etmek için kullanılır. Bu yöntem, web geliştiricilerin bir web sitesinin mobil cihazlarda nasıl görüneceğini ve nasıl çalışacağını test etmelerini sağlar.
Mobil simülasyonu etkinleştirmek, tarayıcının bir mobil cihaz gibi davranmasını ve bir mobil cihazın ekran boyutunu ve özelliklerini taklit etmesini sağlar. Bu, web sitelerinin mobil cihazlarda nasıl görüneceğini ve kullanılabilirliğini test etmek için kullanışlıdır.
Örneğin, bir web sitesini mobil cihazlarda nasıl görüneceğini test etmek istediğinizi düşünelim. EnableMobileEmulation yöntemini kullanarak tarayıcınızı bir mobil cihaz gibi yapılandırabilirsiniz. Bu, tarayıcının ekran boyutunu küçültebilir, kullanıcı arayüzünü mobil cihazlara benzetecektir. Bu metoda string olarak ve ya "ChromiumMobileEmulationDeviceSettings" olarak parametre girebilirsiniz. Bu metod ile ilgili örneğimizi aşağıda görebilrisiniz.
GetMergeResult:
Bu metod, iki farklı DriverOptions nesnesinin (genellikle WebDriver ayarları olarak kullanılır) karşılaştırmasını yaparak bu ayarların birleştirilip birleştirilemeyeceğini kontrol eden bir işlevi gerçekleştirir. DriverOptions nesneleri, bir WebDriver örneğini yapılandırmak için kullanılan ayarlar kümesini temsil eder.
Metodun işleyişi aşağıdaki gibidir:
- DriverOptionsMergeResult adında bir sonuç nesnesi oluşturulur. Bu nesne, birleştirme işleminin sonucunu saklamak için kullanılır.
- İlk olarak, bu metod, her iki DriverOptions nesnesinin karşılaştırılabilir özelliklerini (örneğin, tarayıcı adı, sürüm, platform, proxy ayarı, vb.) karşılaştırır.
- Eğer her iki DriverOptions nesnesinin de aynı özellikleri ayarlanmışsa (örneğin, her ikisi de tarayıcı adını ayarlamışsa), bu durum "birleştirme çakışması" olarak kabul edilir ve sonuç nesnesi IsMergeConflict özelliği true olarak ayarlanır. Ayrıca, hangi özelliğin çakıştığını belirlemek için MergeConflictOptionName özelliği ilgili ayarın adıyla doldurulur.
- Eğer herhangi bir çakışma olmazsa, sonuç nesnesi IsMergeConflict özelliği false olarak kalır.
Bu metod, iki DriverOptions nesnesinin ayarlarının birleştirilip birleştirilemeyeceğini kontrol etmek için kullanılır. Eğer ayarlar arasında çakışma varsa, bu çakışmayı tespit eder ve hangi ayarın çakıştığını belirtir. Bu, WebDriver ayarlarını yapılandırırken çakışan ayarları tespit etmek için kullanışlı olabilir.
!! Bu ve diğer metodlar ile ilgili örneklerimiz aşağıda bulunmaktadır. !!
SetLoggingPreference:
Günlük tercihlerini ayarlamak için kullanılır.SetLoggingPreference yöntemi, Chromium tabanlı bir tarayıcının günlük (log) kayıtları ile ilgili tercihleri ayarlamak için kullanılır.
Günlük (log) kayıtları, tarayıcının çalışma durumu ve hataları hakkında bilgi sağlayan önemli bir araçtır. Bu kayıtlar, tarayıcının nasıl çalıştığını izlemek, hataları ayıklamak ve sorunları tanımlamak için kullanılır. SetLoggingPreference yöntemi, bu log kayıtlarının nasıl yapılandırılacağını belirlemenize yardımcı olur.
Bu metod bizden "string bir LogType" ve "LogLevel" istemektedir.
LogLevel enumunda bulunan log seviyeleri şunlardır:
- All: Bu seviye, tüm log kayıtlarını yakalar. Yani, en detaylı ve kapsamlı log kayıtlarını içerir. Genellikle hata ayıklama ve sorun giderme amaçları için kullanılır. Her türlü log kaydını içerir.
- Debug: Bu seviye, programın içsel işleyişini izlemek için kullanılır. Hata ayıklama (debugging) amaçları için kullanılır. Genellikle çok fazla detay içeren log kayıtları içerir.
- Info: Bu seviye, bilgilendirici log kayıtlarını yakalar. Programın normal çalışması sırasında bilgi sağlamak için kullanılır. Önemli olayların ve durumların kaydını tutar.
- Warning: Bu seviye, programın çalışmasında sorunlara yol açabilecek potansiyel sorunları yakalar. Ancak programın çalışmasını engellemez. Uyarılar, önemli hataları önlemek için kullanılır.
- Severe: Bu seviye, ciddi hataları yakalar. Programın çalışmasını engelleyen veya ciddi sorunlara neden olan hataların kaydını tutar.
- Off: Bu seviye, hiçbir log kaydını yakalamaz. Log kaydı yapılmaz veya devre dışı bırakılır. Genellikle loglamayı tamamen kapatmak için kullanılır.
Bu log seviyeleri, log kayıtlarının ne tür olayları veya bilgileri içereceğini belirler. Log seviyeleri, genellikle programın geliştirilmesi ve hataların izlenmesi sırasında kullanılır. Daha düşük bir log seviyesi, daha fazla detaylı bilgi sağlar ancak daha fazla kaynak tüketebilir, bu nedenle seçim yaparken dikkatli olmak önemlidir.
LogTypeler ise aşağıdaki gibidir:
- Client: Bu log türü, tarayıcıya yapılan istemci tarafı (client-side) talepleri ve etkileşimleri içerir. Örneğin, tarayıcıya gönderilen komutlar ve istekler bu log türünde kaydedilir. Bu loglar, WebDriver komutlarının ve kullanıcı etkileşimlerinin takibi için kullanışlıdır.
- Driver: Bu log türü, WebDriver sürücüsünün işleyişine ve içsel davranışına ilişkin log kayıtlarını içerir. Sürücü tarafından gerçekleştirilen işlemler, hata mesajları ve sürücünün iç çalışmasıyla ilgili bilgiler bu log türünde yer alır.
- Browser: Bu log türü, tarayıcının kendisine ait log kayıtlarını içerir. Tarayıcının çalışma durumu, tarayıcı tarafından oluşturulan hata mesajları, tarayıcı ayarları ve tarayıcı bileşenlerine ilişkin bilgiler bu log türünde bulunur. Tarayıcının içsel durumunu izlemek ve hataları ayıklamak için kullanılır.
- Server: Bu log türü, tarayıcıyı çalıştıran sunucu tarafı (server-side) bileşenlerin log kayıtlarını içerir. Sunucu tarafındaki işlemler, tarayıcı ile iletişim ve tarayıcının sunucu tarafı bileşenleriyle ilgili bilgiler bu log türünde yer alır.
- Profiler: Bu log türü, tarayıcının performans profillemesi ile ilgili log kayıtlarını içerir. Tarayıcının performansını izlemek, kaynak kullanımını analiz etmek ve performans sorunlarını tanımlamak için kullanılır.
- Performance: Bu log türü, tarayıcının performansı ile ilgili ölçümleri içerir. Tarayıcının yanıt süreleri, sayfa yükleme süreleri ve benzeri performans metrikleri bu log türünde yer alır. Web uygulamalarının performansını izlemek ve optimize etmek için kullanılır.
Bu log türleri, tarayıcının farklı bileşenlerinden kaynaklanan log kayıtlarını ayrıştırmak için kullanılır. Hangi log türünün kullanılacağı, ihtiyaca ve hata ayıklama gereksinimlerine bağlıdır. Bu loglar, tarayıcının işleyişini daha iyi anlamak ve hataları ayıklamak için önemli bir araçtır.
ToCapabilities: Ayarları
Capabilities nesnesine dönüştürmek için kullanılır.ToCapabilities yöntemi, WebDriver ayarlarını Capabilities nesnesine dönüştürmek için kullanılır. Bu yöntem, Selenium veya diğer otomasyon araçları ile uyumlu olan Capabilities nesnesini elde etmek için kullanılır.
Capabilities, WebDriver'ın özelliklerini ve yapılandırmalarını temsil eden bir nesnedir. Bir WebDriver örneği başlatılırken veya otomasyon senaryoları çalıştırılırken, bu Capabilities nesnesi kullanılarak özel ayarlar, tarayıcı türü, tarayıcı sürümü, işletim sistemi bilgisi ve diğer özellikler belirtilebilir.
ToCapabilities yöntemi, belirli bir WebDriver ayarlarını Capabilities nesnesine çevirir ve bu nesneyi otomasyon senaryosunda kullanmanıza olanak tanır. Özellikle, farklı tarayıcıları veya farklı yapılandırmaları kullanan test senaryolarınız varsa, bu yöntemi kullanarak ayarları Capabilities ile uyumlu hale getirebilirsiniz.
Hiç yorum yok:
Yorum Gönder