Chrome Seçenekleri ve İstenilen Yetenekler Selenium

⚡ Akıllı Özet

Chrome Seçenekleri ve İstenen Özellikler Selenium WebDriver, otomatik testler sırasında Chrome tarayıcısının nasıl başlatılacağını ve davranacağını kontrol eder. Birlikte argümanları, uzantıları, SSL işlemeyi ve tarayıcılar arası ayarları yapılandırarak test çalışmalarını esnek, tekrarlanabilir ve kullanıma hazır hale getirirler. Selenium Izgara yürütme.

  • 🌐 Chrome Seçenekleri: Oturumları, "başlangıçta maksimum boyuta ayarlanmış", "gizli mod" ve "başsız mod" gibi argümanlarla özelleştirir.
  • ⚙️ İstenen Yetenekler: Tarayıcı adını, platformu, sürümü ve SSL sertifikasının kabulünü ayarlar.
  • 🧩 Uzantılar: CRX dosyasını manuel olarak yüklemek yerine otomasyon yoluyla yükleyin.
  • 🇧🇷 Kimliği gizli ve başsız: Yeniden kullanılabilir kod, CI işlem hatları için özel veya arka plan oturumları çalıştırır.
  • 🖥️ Selenium Kafes: Bu özellikler, tarayıcılar arası ve dağıtılmış test yürütülmesini mümkün kılar.
  • ⚠️ Selenium 4 notu: DesiredCapabilities kullanımdan kaldırılmıştır; ChromeOptions'ı doğrudan sürücüye iletin.

Chrome Seçenekleri ve İstenen Özellikler Selenium Web Sürücüsü

Chrome Seçenekleri Sınıfı nedir?

MKS Chromeoptions Sınıfı bir kavramdır Selenium Chrome sürücüsünün çeşitli özelliklerini düzenlemek için WebDriver. Chrome seçenekleri sınıfı genellikle Chrome sürücü oturumlarını özelleştirmek için Desired Capabilities ile birlikte kullanılır. Chrome'u en üst düzeye çıkarılmış modda açma, mevcut uzantıları devre dışı bırakma, açılır pencereleri devre dışı bırakma vb. gibi çeşitli işlemler gerçekleştirmenize yardımcı olur.

Örnek:

Aşağıdaki örnekte, ChromeOptions sınıfını kullanarak Chrome tarayıcısını ekranı kaplayan modda açmanın bir yolu gösterilmektedir. Web sürücüsünün başlatılmasına ChromeOptions sınıfının bir örneğini aktarmamız gerekiyor.

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

ChromeOptions sınıfı için mevcut ve en sık kullanılan bağımsız değişkenlerin listesi aşağıdadır

  • başlangıç ​​maksimize edilmiş: Chrome'u büyütme modunda açar
  • gizli: Chrome'u gizli modda açar
  • başsız: Chrome'u başsız modda açar
  • uzantıları devre dışı bırak: Chrome tarayıcıdaki mevcut uzantıları devre dışı bırakır
  • açılır pencere engellemeyi devre dışı bırak: Chrome tarayıcısında görüntülenen açılır pencereleri devre dışı bırakır
  • varsayılan tarayıcı yap: Chrome'u varsayılan tarayıcı yapar
  • versiyon: Chrome tarayıcı sürümünü yazdırır
  • bilgi çubuklarını devre dışı bırak: Chrome'un 'Chrome otomatik yazılım tarafından kontrol ediliyor' bildirimini görüntülemesini engeller

İstenilen Yetenekler sınıfı

İstenilen Yetenek Sınıfı Web sürücülerinin birden çok özelliğini değiştirmek için kullanılır. Tarayıcı adı, tarayıcı platformu vb. gibi web sürücülerinin ayrı ayrı özelliklerini değiştirmek için anahtar/değer çiftleri sağlar. İstenilen Yetenekler sınıfının yaygın bir yöntemi, setCapability yöntemidir. Çoğunlukla birlikte kullanılır Selenium Aynı test senaryosunun farklı tarayıcılarda yürütülmesi gereken Grid.

Örnek:

Aşağıdaki örnek, Chrome tarayıcısının, Chrome için İstenilen Yetenekler sınıfını kullanarak varsayılan olarak web sitelerinde SSL sertifikalarını kabul etmesini etkinleştirmenin yolunu gösterir.

// Create an object of desired capabilities class with Chrome driver
DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome();
// Set the pre defined capability – ACCEPT_SSL_CERTS value to true
SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// Open a new instance of chrome driver with the desired capability
WebDriver driver = new ChromeDriver(SSLCertificate);

Aşağıda en sık kullanılan önceden tanımlanmış yetenek türleri verilmiştir.

Yetenek Adı Açıklama
ACCEPT_SSL_CERTS Bu özellik, tarayıcıya varsayılan olarak SSL Sertifikalarını kabul etmesini söyler
PLATFORM_NAME Bu özellik, web sitesine erişim için kullanılan işletim sistemi platformunu ayarlamak için kullanılır.
BROWSER_NAME Bu özellik, bir web sürücüsü örneğinin tarayıcı adını ayarlamak için kullanılır
VERSION Tarayıcı sürümünü ayarlamak için kullanılan bu özellik

Adblocker uzantısı için Chrome Seçenekleri

Chrome tarayıcısının reklam engelleyici uzantısı ChromeDriver Seçenekleri ve İstenen Yetenekler sınıfı kullanılarak işlenebilir. Erişim adımları aşağıdadır AdBlockİstenilen Yetenekler sınıfını kullanarak Chrome tarayıcısında er uzantısını kullanın.

) 1 Adım AdBlockChrome Seçenekleri sınıfını kullanmadan önce Chrome tarayıcıya er uzantısı yüklenmelidir

) 2 Adım ExtracCRX dosyasına karşılık gelen AdBlockhttp://crxex üzerinden er uzantısıtractor.com/

) 3 Adım İndirilen CRX Dosya yolunu Chrome Seçenekleri sınıfına iletin

) 4 Adım İstediğiniz yetenek sınıfını ve Chrome Seçeneklerini kullanarak web sürücüsünü oluşturun. Selenium nesne

Örnek:

Aşağıdaki örnekte, Chrome Seçenekleri ve İstenilen Yetenekler sınıfını kullanarak Chrome tarayıcısında reklam engelleyici uzantısının nasıl etkinleştirileceği gösterilmektedir.

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("Path to CRX File"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

Extract CRX Dosyası

Aşağıdaki adımlar, örnek alma işlemini göstermektedir.tracWeb sitesi üzerinden Ad Blocker aracılığıyla CRX dosyasını indirme – http://crxextractor.com/

) 1 Adım MyCAD'de yazılım Güncelleme ye git http://crxextractor.com/ ve başlat düğmesine tıklayın

Extract CRX Dosyası

) 2 Adım Chrome eklentisi olan Ad Blocker'ı kullanın. URL Metin kutusunun altında. URL Chrome web mağazasında Adblock için https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

ve tamam'a tıklayın

Extract CRX Dosyası

) 3 Adım Tamam butonuna basıldığında butonun etiketi aşağıdaki gibi Get .CRX olarak değişecektir. Get .CRX butonuna tıklayın, uzantıya karşılık gelen CRX dosyası indirilecektir.

Extract CRX Dosyası

) 4 Adım Dosyayı yerel makineye kaydedin, kaydedilen yolu not edin. Bir sonraki adım, kaydedilen yolu Chrome Seçenekleri sınıfına iletmektir

Örnek Code:

  1. Şurada reklam göreceksiniz: https://demo.guru99.com/ aşağıda olduğu gibi

Extract CRX Dosyası

  1. İle AdBlockChrome tarayıcı reklamlarında etkin olan er uzantısı devre dışı bırakılmalıdır
package adblock;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class AdblockDemo {
public static void main(String[] args)  {
	
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");		
	ChromeOptions options = new ChromeOptions();
	options.addExtensions(new File("X://extension_3_40_1_0.crx")); 
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code açıklama:

  1. Test için Chrome Tarayıcıyı kullandığınızdan, başlangıçta chromedriver.exe dosyasının yolunu set property yöntemini kullanarak ayarlamanız gerekir.
  2. Uzantı yöntemini eklemek için CRX Dosyasının yolunu ayarlamanız gerekir
  3. Daha sonra Chrome'da İstenilen Yeteneklerin bir nesnesini oluşturmanız gerekir. Selenium sınıfına girin ve bunu web sürücüsü örneğine iletin. İtibaren Selenium 3.8.1 sürümünde, sürücü yetenekleri sınıfı kullanımdan kaldırıldı ve aynı şeyi Chrome Sürücü yapıcısına bir argüman olarak iletmeden önce yetenekler nesnesini Chrome Seçenekleri nesnesiyle birleştirmeniz gerekiyor
  4. Açın URL - https://demo.guru99.com/test/simple_context_menu.html Reklam Engelleyici uzantısı etkinken
  5. Tarayıcıyı büyütün ve kapatın

NOT: Biz etkinleştiriyoruz AdBlockUzantı Chrome tarayıcısında Adblocker uzantısını manuel olarak etkinleştirmek yerine otomasyon komut dosyası aracılığıyla Chrome tarayıcısında. CRX Dosyası, otomasyon komut dosyasını kullanarak reklam engelleyici uzantısına erişmenin bir yoludur

Çıktı:

Chrome tarayıcı şununla etkinleştirilecek: AdBlocker uzantısı hiçbir reklam olmadan aşağıdaki gibi etkinleştirildi

Extract CRX Dosyası

ChromeOptions, uzantıların yüklenmesinin ötesinde, tarayıcı penceresinin kendisinin nasıl çalıştığını da kontrol eder.

Gizli mod için Chrome Seçenekleri

Chrome Seçenekleri, önceden tanımlanmış bağımsız değişken kullanılarak gizli mod için kullanılabilir -tebdili kıyafet.

Aşağıda aynı işlemi gerçekleştirmek için örnek kod verilmiştir.

Örnek Code:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Incognito{
public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
	ChromeOptions options = new ChromeOptions();
	options.addArguments("--incognito");
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);		
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code açıklama:

  1. Test için Chrome Tarayıcıyı kullandığınızdan, başlangıçta chromedriver.exe dosyasının yolunu set property yöntemini kullanarak ayarlamanız gerekir.
  2. Daha sonra Chrome Seçenekleri sınıfının bir nesnesini oluşturmanız ve bunu web sürücüsü örneğine aktarmanız gerekir. Chrome tarayıcıyı gizli modda açmak istediğimiz için –incognito argümanını Chrome Seçenekleri sınıfına iletmeniz gerekir.
  3. Daha sonra, İstenilen Yetenekler sınıfının bir nesnesini oluşturun ve birleştirme yöntemini kullanarak İstenilen Yetenekler sınıfı nesnesini Chrome Seçenekleri sınıfı nesnesiyle birleştirin
  4. Chrome Driver sınıfının bir nesnesini oluşturmanız ve Chrome Seçenekleri nesnesini argüman olarak iletmeniz gerekir
  5. Son olarak, geçmemiz gerekiyor. URL - https://demo.guru99.com/test/simple_context_menu.html Driver.get yöntemine
  6. Tarayıcıyı büyütün ve kapatın

Çıktı:

Chrome tarayıcı penceresi aşağıdaki gibi Gizli modda açılacaktır.

Gizli Mod İçin Chrome Seçenekleri

Başsız Chrome için Chrome Seçenekleri

Arka planda Başsız bir tarayıcı çalışır. Tarayıcı GUI'sini veya üzerinde gerçekleştirilen işlemleri görmezsiniz.

Chrome tarayıcısını başsız modda çalıştırmaya yönelik Chrome Seçenekleri, önceden tanımlanmış bağımsız değişkenler kullanılarak gerçekleştirilebilir -başsız.

Bunu gerçekleştirmek için örnek kod aşağıda belirtilmiştir.

Örnek:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class HeadlessModeDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
		ChromeOptions options = new ChromeOptions();
		options.addArguments("--headless");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(ChromeOptions.CAPABILITY, options);
		options.merge(capabilities);
		ChromeDriver driver = new ChromeDriver(options);		
		driver.get("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code açıklama:

  1. Test için Chrome Tarayıcıyı kullandığınızdan, başlangıçta chromedriver.exe dosyasının yolunu set property yöntemini kullanarak ayarlamanız gerekir.
  2. Ardından, Chrome Seçenekleri sınıfının bir nesnesini oluşturun ve bunu web sürücüsü örneğine aktarın. Chrome tarayıcıyı başsız modda açmak istediğimiz için –başsız argümanını Chrome Seçenekleri sınıfına aktarmamız gerekiyor.
  3. DesiredCapaabilitys Chrome sınıfının bir nesnesini oluşturun ve Desired Capaabilitys sınıfı nesnesini birleştirme yöntemini kullanarak Chrome Options sınıfı nesnesiyle birleştirin
  4. Chrome Driver sınıfının bir nesnesini oluşturun ve Chrome Seçeneklerini iletin Selenium argüman olarak nesne
  5. Son olarak, geçmemiz gerekiyor. URL - https://demo.guru99.com/ Driver.get yöntemine
  6. Sayfa başlığını yazdırın ve tarayıcıyı kapatın

Çıktı

Chrome Başsız modda çalışacağından tarayıcı yukarıdaki kod için görünmeyecektir. Sayfa başlığı aşağıdaki gibi getirilecek ve görüntülenecektir.

Başsız Chrome İçin Chrome Seçenekleri

SSS

Evet. Selenium 4. DesiredCapabilities özelliği, ChromeOptions gibi tarayıcı Options sınıfları lehine kullanımdan kaldırılmıştır. Selenium 3. Bunları birleştirdiniz; Selenium 4. ChromeOptions'ı doğrudan sürücüye iletiyorsunuz.

Örneğin, `options.addArguments` fonksiyonunu `start-maximized` ve `incognito` gibi çeşitli bayraklarla çağırabilirsiniz. Birden fazla çağrıyı zincirleme olarak da yapabilirsiniz. Her argüman, Chrome oturumunun nasıl başlatılacağını özelleştirir.

`addArguments`, `headless` veya `incognito` gibi komut satırı bayraklarını Chrome'a ​​iletir. `addExtensions` ise paketlenmiş bir `.crx` uzantı dosyasını oturuma yükler. Her ikisi de davranışı özelleştirir ancak farklı amaçlara hizmet eder.

Evet. Copilot gibi yapay zeka asistanları ChromeOptions ve yetenek ayarlarını oluşturur, argüman adları önerir ve kullanımdan kaldırılmış API'leri açıklar. Çıktıyı her zaman inceleyin, çünkü bayrak adları ve Selenium Sürümler sık ​​sık değişir.

Yapay zekâ destekli kendi kendini onaran araçlar, Chrome güncellemelerinden sonra argümanları otomatik olarak günceller, kararsız bayrakları tespit eder ve istikrarlı alternatifler önerir. Bu araçlar, başsız çalıştırmalar için gereken bakımı ve CI ortamlarındaki yetenek uyumsuzluklarını azaltır.

Evet. ChromeOptions, Grid yürütmesi için RemoteWebDriver ile çalışır. Seçenekleri uzak oturuma ekleyerek, aynı yapılandırmanın dağıtılmış makineler ve tarayıcılar arasında çalışmasını sağlarsınız.

Bu genellikle ChromeDriver ve Chrome tarayıcı sürümlerinin uyuşmadığı anlamına gelir. Uyumlu bir ChromeDriver yükleyin veya şunu kullanın: Selenium yöneticisi Selenium 4. Sürücüyü otomatik olarak çözümlemek için.

Deneysel bir seçenek kullanın: setExperimentalOption aracılığıyla geçirilen download.default_directory içeren bir tercih haritası. Chrome daha sonra otomatik testler sırasında dosyaları otomatik olarak bu klasöre kaydeder.

Bu yazıyı şu şekilde özetleyin: