Özellikler, bir ChromeDriver oturumunu özelleştirmek ve yapılandırmak için kullanabileceğiniz seçeneklerdir. Bu sayfada, ChromeDriver'ın desteklediği tüm özellikler ve bunların nasıl kullanılacağı açıklanmaktadır.
WebDriver dil API'leri, özellikleri ChromeDriver'a geçirme yolları sağlar. Kullanılan mekanizma dile göre değişir, ancak çoğu dilde aşağıdaki mekanizmalardan biri veya her ikisi birden kullanılır:
ChromeOptions
sınıfını kullanın. Bu komut, Java, Python vb. tarafından desteklenir.DesiredCapabilities
sınıfını kullanın. Bu; Python, Ruby vb. tarafından desteklenir. Java'da da kullanılabilir ancak Java'da kullanımı kullanımdan kaldırılmıştır.
ChromeOptions sınıfını kullanma
ChromeDriver'a özgü özellikleri ayarlamak için uygun yöntemler içeren bir ChromeOptions
örneği oluşturabilirsiniz. Daha sonra, ChromeOptions
nesnesini ChromeDriver oluşturucuya geçirebilirsiniz:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Selenium 3.6.0 sürümünden itibaren, Java'daki ChromeOptions
sınıfı Capabilities
arayüzünü de uygular ve böylece ChromeDriver'a özgü olmayan diğer WebDriver özelliklerini belirtmenize olanak tanır.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
DesiredCapabilities'i kullanma
DesiredCapabilities
kullanmak için işlevin adını ve gereken değer türünü bilmeniz gerekir. Tam listeye buradan ulaşabilirsiniz.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Yaygın kullanım alanları
Özel profil kullan (kullanıcı verileri dizini olarak da adlandırılır)
Varsayılan olarak, ChromeDriver her oturum için yeni bir geçici profil oluşturur. Bazen özel tercihler ayarlamak veya tamamen özel bir profil kullanmak isteyebilirsiniz. Chrome başlatıldıktan sonra uygulanacak tercihleri belirtmek için "chrome.prefs" özelliğini (aşağıda daha sonra açıklanmıştır) kullanabilirsiniz. İkinci seçenek sunuluyorsa user-data-dir
Chrome komut satırı anahtarını kullanarak Chrome'a hangi profilin kullanılacağını bildirebilirsiniz:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Chrome'u (komut satırında veya ChromeDriver üzerinden) user-data-dir
anahtarı yeni bir dizine ayarlayarak çalıştırarak kendi özel profilinizi oluşturabilirsiniz. Yol mevcut değilse Chrome, belirtilen konumda yeni bir profil oluşturur. Daha sonra, profil ayarlarını istediğiniz gibi değiştirebilirsiniz ve ChromeDriver gelecekte bu profili kullanabilir. Chrome'un hangi profili kullandığını görmek için tarayıcıda chrome://version sayfasını açın.
Chrome'u ekranı kaplayacak şekilde başlat
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Standart olmayan bir konumda çalıştırılabilir Chrome dosyası kullanma
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
İletişim pencerelerini engelleme
ChromeDriver, varsayılan olarak Chrome'u pop-up pencerelere izin verecek şekilde yapılandırır. Pop-up'ları engellemek (ör. ChromeDriver tarafından kontrol edilmediğinde normal Chrome davranışını geri yüklemek) istiyorsanız aşağıdakileri yapın:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
İndirme dizinini ayarlar
Aşağıdaki kod, Chrome'u belirli bir dizine dosya indirecek şekilde yapılandırmak için kullanılabilir. Ancak, dikkat edilmesi gereken birkaç uyarı var:
- Chrome, belirli dizinlerin indirme için kullanılmasına izin vermez. Özellikle, masaüstü klasörünü indirme dizini olarak kullanamazsınız. Linux'ta indirme işlemi için ana dizini de kullanamazsınız. Yasaklı dizinlerin tam listesi değişebileceğinden, sistem için özel bir anlamı olmayan bir dizin kullanmanız önerilir.
- ChromeDriver, indirme işleminin tamamlanmasını otomatik olarak beklemez. drive.quit() çağrısını çok erken yaparsanız Chrome, indirme işlemi tamamlanmadan önce sonlandırılabilir.
- Göreli yollar her zaman çalışmaz. En iyi sonuç için bunun yerine tam yolu kullanın.
- Windows'da yol ayırıcı olarak "" karakterini kullanın. "/" kullanımı, Windows'da güvenilir değildir.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Tanınan özellikler
ChromeDriver tarafından kabul edilen standart özellikler için lütfen Selenium dokümanlarına ve W3C WebDriver standardına göz atın. Burada yalnızca Chrome'a özgü özellikleri listeliyoruz.
ChromeOptions
nesne
Chrome'a özgü özelliklerin çoğu ChromeOptions
nesnesi aracılığıyla gösterilir. Bazı dillerde bu işlem ChromeOptions
sınıfı tarafından uygulanır. Diğer dillerde, istenen özelliklerde goog:chromeOptions
sözlüğü altında depolanır.
perfLoggingPrefs
nesne
perfLoggingPrefs sözlüğü aşağıdaki biçimdedir (tüm anahtarlar isteğe bağlıdır):
Ad | Tür | Varsayılan | Açıklama |
---|---|---|---|
enableNetwork
|
boolean | true | Ağ alanından etkinliklerin toplanıp toplanmayacağını belirtir. |
enablePage
|
boolean | true | Sayfa alanından etkinliklerin toplanıp toplanmayacağını belirtir. |
traceCategories
|
dize | (boş) | İzleme etkinliklerinin toplanması gereken Chrome izleme kategorilerinin virgülle ayrılmış bir dizesi. Belirtilmemiş veya boş bir dize, izlemeyi devre dışı bırakır. |
bufferUsageReportingInterval
|
pozitif tam sayı | 1000 | Geliştirici Araçları izleme arabellek kullanım etkinlikleri arasında istenen milisaniye sayısı. Örneğin, 1.000 değerse, ardından Geliştirici Araçları saniyede bir izleme arabelleğinin ne kadar dolu olduğunu bildirir. Raporda arabellek kullanımının %100 olduğu belirtilirse bir uyarı verilir. |
Döndürülen Özellikler
Bu, Chrome'a özgü döndürülen tüm özelliklerin listesidir. (yani, yeni bir oturum oluşturduğunuzda ChromeDriver'ın döndürdüğü sonuç)
Ad | Tür | Açıklama |
---|---|---|
chrome.chromedriverVersion
|
dize | ChromeDriver sürümü |
userDataDir
|
dize | Chrome'un kullandığı kullanıcı verileri dizininin yolu; bunun bir "chrome" sözlüğü içinde olduğunu unutmayın |