Özellikler ve ChromeOptions

Özellikler, bir ChromeDriver oturumunu özelleştirmek ve yapılandırmak için kullanabileceğiniz seçeneklerdir. Bu sayfada, ChromeDriver tarafından desteklenen tüm özellikler ve bunların nasıl kullanılacağı açıklanmaktadır.

WebDriver dil API'leri, özellikleri ChromeDriver'a aktarmak için çeşitli yollar sunar. Tam mekanizma dile göre değişir, ancak çoğu dil aşağıdaki mekanizmalardan birini veya ikisini birden kullanır:

  1. ChromeOptions sınıfını kullanın. Bu, Java, Python vb. tarafından desteklenir.
  2. DesiredCapabilities sınıfını kullanın. Bu, Python, Ruby vb. tarafından desteklenir. Java'da da kullanılabilse de Java'da kullanımı desteklenmemektedir.

ChromeOptions sınıfını kullanma

ChromeDriver'a özgü özellikleri ayarlamak için kullanışlı yöntemler sunan ChromeOptions örneğini oluşturabilirsiniz. Ardından ChromeOptions nesnesini ChromeDriver oluşturucusuna ekleyin:

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

Selenium sürüm 3.6.0'dan bu yana, Java'daki ChromeOptions sınıfı Capabilities arayüzünü de uygulayarak 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 özelliğini kullanmak için özelliğin adını ve aldığı 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 örnekleri

Özel profil kullanma (kullanıcı veri 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 belirleyebilir veya tamamen özel bir profil kullanabilirsiniz. Birincisi, "chrome.prefs" ise özelliğini (aşağıda açıklanmıştır) etkinleştirdiğinizden, Chrome başlatıldıktan sonra uygulanacak tercihleri belirtin. İkincisi varsa Chrome'a hangi profili kullanacağını bildirmek için user-data-dir Chrome komut satırı anahtarını kullanabilirsiniz:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

Kendi özel profilinizi oluşturmak için user-data-dir anahtarını yeni bir dizin olarak ayarlayıp Chrome'u (komut satırında veya ChromeDriver üzerinden) çalıştırabilirsiniz. Yol yoksa Chrome, belirtilen konumda yeni bir profil oluşturur. Ardından, profil ayarlarını istediğiniz gibi değiştirebilirsiniz. ChromeDriver, bu profili ileride 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 Chrome yürütülebilir dosyasını kullanma

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");

İletişim pencerelerini engelleme

Varsayılan olarak ChromeDriver, 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 ayarla

Aşağıdaki kod, Chrome'u belirli bir dizine dosya indirecek şekilde yapılandırmak için kullanılabilir. Bununla birlikte, dikkat edilmesi gereken birkaç uyarı vardır:

  • Chrome, belirli dizinlerin indirilmesi 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() işlevini çok erken çağırırsanız Chrome, indirme işlemi tamamlanmadan sonlandırılabilir.
  • Göreli yollar her zaman çalışmaz. En iyi sonuç için bunun yerine tam yolu kullanın.
  • Windows'da "" kullanın olarak kullanılmasını sağlar. "/" kullanma 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

Standartlar için lütfen Selenium dokümanlarına ve W3C WebDriver standardına bakın özellikler (ChromeDriver tarafından kabul edilir). Burada sadece Chrome'a özel özellikler.

ChromeOptions nesne

Chrome'a özgü özelliklerin çoğu ChromeOptions üzerinden gösterilir nesnesini tanımlayın. Bazı dillerde bu, ChromeOptions sınıfı tarafından uygulanır. İçinde bunlar şu dilde goog:chromeOptions sözlüğünün altında depolanır: gerçekleştirebilirsiniz.

Ad Tür Varsayılan  Açıklama 
args  dize listesi   Chrome'u başlatırken kullanılacak komut satırı bağımsız değişkenlerinin listesi. İlişkili bir değere sahip bağımsız değişkenler "=" ile ayrılmalıdır" belirtin (ör. ['start-maximized', 'user-data-dir=/tmp/temp_profile']). Görüntüleyin burada Chrome bağımsız değişkenleri listesi için.
binary dize   Kullanılacak Chrome yürütülebilir yolu (Mac OS X'te bu, yalnızca uygulama değil, "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" gibi gerçek ikili program olmalıdır)
extensions dize listesi   Başlangıçta yüklenecek Chrome uzantılarının listesi. Listedeki her öğe, base-64 kodlu bir Chrome uzantısı (.crx) olmalıdır
localState sözlük   Her girişi tercihin adı ve değerinden oluşan bir sözlük. Bu tercihler, kullanıcı verileri klasöründeki Yerel Durum dosyasına uygulanır.
prefs sözlük   Her girişi tercihin adı ve değerinden oluşan bir sözlük. Bu tercihler, yalnızca kullanılan kullanıcı profiline uygulanır. Bkz. "Tercihler" dosyasını inceleyebilirsiniz.
detach boolean yanlış Yanlış değerine ayarlanırsa ChromeDriver sonlandırıldığında, oturumun kapatılıp kapatılmadığına bakılmaksızın Chrome'dan çıkılır. Doğru değerine ayarlanırsa Chrome'dan yalnızca oturumdan çıkıldığında (veya kapatıldığında) çıkış yapılır. Doğru değerine ayarlanırsa ve oturum kapatılmazsa ChromeDriver, çalışan Chrome örneğinin kullandığı geçici kullanıcı verileri dizinini temizleyemez.
debuggerAddress dize
Bağlanılacak Chrome hata ayıklayıcı sunucusunun <anamakineadı/ip:bağlantı noktası> biçimindeki adresi (ör. "127.0.0.1:38947"
excludeSwitches dize listesi   Chrome başlatılırken ChromeDriver'ın varsayılan olarak geçişlerini hariç tutan Chrome komut satırı anahtarlarının listesi. Anahtarların önüne -- eklemeyin.
minidumpPath  dize   Chrome mini dökümlerinin depolanacağı dizin . (Yalnızca Linux'ta desteklenir.)
mobileEmulation sözlük   "deviceName" değerini veya "deviceMetrics" ve "userAgent" değerlerini içeren bir sözlük. Daha fazla bilgi için Mobil Öykünmesi bölümüne bakın.
perfLoggingPrefs sözlük   Performans günlüğü tercihlerini belirten isteğe bağlı bir sözlük. Daha fazla bilgi için aşağıya göz atın.
windowTypes dize listesi   Pencere tutma yerleri listesinde görünecek pencere türlerinin listesi. <webview> erişimi için öğeler, "webview" değerini dahil edin bu listede yer alı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 etkinlik toplanıp toplanmayacağını belirler.
enablePage boolean true Sayfa alanından etkinlik toplanıp toplanmayacağını belirler.
traceCategories dize (boş) İzleme etkinliklerinin toplanacağı, 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ı iz arabelleği kullanım etkinlikleri arasında istenen milisaniye cinsinden süre. Örneğin 1000 ise Geliştirici Araçları saniyede bir kez iz arabelleğinin ne kadar dolu olduğunu bildirir. Bir raporda tampon kullanımının %100 olduğu belirtilirse uyarı verilir.

Döndürülen Özellikler

Bu, Chrome'a özel döndürülen özelliklerin tümünü içeren bir listedir. (ör. yeni bir oturum oluşturduğunuzda ChromeDriver'ın döndürdüğü öğeler)

Ad Tür  Açıklama 
chrome.chromedriverVersion dize ChromeDriver sürümü
userDataDir dize Chrome'un kullandığı kullanıcı verileri dizininin yolu; not edin, bunun bir 'chrome' içinde sözlük