Yetenekler, 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, ChromeDriver'a özellik aktarmanın yollarını sağlar. Tam mekanizma dile göre değişir ancak çoğu dil aşağıdaki mekanizmalardan birini veya ikisini birden kullanır:
ChromeOptions
sınıfını kullanın. Bu özellik Java, Python vb. tarafından desteklenir.DesiredCapabilities
sınıfını kullanın. Bu özellik Python, Ruby vb. tarafından desteklenir. Java'da da kullanılabilir ancak Java'da kullanımı sonlandırılmıştır.
ChromeOptions sınıfını kullanma
ChromeDriver'a özgü özellikleri ayarlamak için kullanışlı yöntemlere sahip bir ChromeOptions
örneği oluşturabilirsiniz. Ardından ChromeOptions
nesnesini ChromeDriver kurucusuna iletebilirsiniz:
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 beri 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
işlevini kullanmak için özelliğin adını ve aldığı değer türünü bilmeniz gerekir. Tam listeyi inceleyin.
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
ChromeDriver, varsayılan olarak her oturum için yeni bir geçici profil oluşturur. Özel tercihler ayarlamak veya kullanıcı verileri dizini olarak da bilinen özel bir profil kullanmak isteyebilirsiniz.
Geçici profili kullanıyorsanız Chrome'un başlatılmasından sonra uygulanacak tercihleri belirtmek için chrome.prefs
özelliğini kullanabilirsiniz. Özel profiller için Chrome'a hangi profili kullanacağını belirtmek üzere user-data-dir
Chrome komut satırı anahtarını kullanabilirsiniz:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Chrome'u komut satırında veya ChromeDriver ile çalıştırarak user-data-dir
anahtarını yeni bir dizine ayarlayarak kendi özel profilinizi oluşturun.
Yol yoksa Chrome, belirtilen konumda yeni bir profil oluşturur. Ardından, profil ayarlarını değiştirebilirsiniz. ChromeDriver, profili gelecekte kullanabilir. Chrome'un hangi profili kullandığını görmek için tarayıcıda chrome://version
simgesini açın.
Chrome'u tam ekran başlatma
start-maximized
anahtarını kullanarak Chrome'u tam ekran başlatın:
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 kutusu pencerelerini engelleme
ChromeDriver, Chrome'u varsayılan olarak pop-up pencerelere izin verecek şekilde yapılandırır. Pop-up'ları engellemek ve 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 ayarlama
Aşağıdaki kod, Chrome'u belirli bir dizine dosya indirecek şekilde yapılandırmak için kullanılabilir. Ancak dikkat etmeniz gereken birkaç nokta vardır:
- Chrome, indirme için belirli dizinlerin kullanılmasına izin vermez. Özellikle, indirme dizini olarak masaüstü klasörünü kullanamazsınız. Linux'ta indirme için ana dizini kullanamazsınız. Yasaklanmış dizinlerin tam listesi değişebilir. Bu nedenle, sistem için özel bir anlamı olmayan benzersiz bir dizin kullanmanızı öneririz.
- ChromeDriver, indirme işleminin tamamlanmasını otomatik olarak beklemez.
driver.quit()
işlevini çok erken çağırırsanız Chrome, indirme işlemi tamamlanmadan sonlandırılabilir. - Göreli yollar her zaman çalışmadığından en iyi sonuçlar için tam yollar kullanın.
- Windows'da
\` as path separators.
/` kullanmayın.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Tanınmış özellikler
ChromeDriver tarafından kabul edilen standart özellikler için Selenium dokümanlarını ve W3C WebDriver standardını okuyun. Burada, Chrome'a özgü özellikleri listeledik.
ChromeOptions
nesnesi
Chrome'a özgü özelliklerin çoğu ChromeOptions
nesnesi aracılığıyla sunulur. Bazı dillerde bu sınıflar ChromeOptions
sınıfı tarafından uygulanır. Diğer dillerde, seçili özelliklerde goog:chromeOptions
sözlüğünün altında depolanır.
perfLoggingPrefs
nesnesi
perfLoggingPrefs
sözlüğü aşağıdaki biçime sahiptir. Tüm anahtarlar isteğe bağlıdır:
İade Edilen Özellikler
Chrome'a özgü döndürülen tüm özelliklerin, yani yeni bir oturum oluşturduğunuzda ChromeDriver'ın döndürdüğü değerlerin listesi aşağıda verilmiştir.