2012-07-02 14 views
6

Uzak chrome sürücümü, Almanca yerine İngilizce sayfaları istemeye çalışıyorum. chromedriver documentation ve list of chrome preferences ardından böyle ayarlamak çalıştı:WebDriver: Chrome için tercih edilen dilleri belirtme

capabilities.setCapability(ChromeOptions.CAPABILITY, getChromeOptions()); 
    Map<String, String> chromePrefs = new HashMap<String,String>(); 
    chromePrefs.put("settings.language.preferred_languages", "de-DE,de"); 
    capabilities.setCapability("chrome.prefs", chromePrefs); 

Ve bunun günlük dosyasından chromedriver ulaşır görebilirsiniz:

[0.453][FINE]:  Initializing session with capabilities { 
    "browserName": "chrome", 
    "chrome.prefs": { 
     "settings.language.preferred_languages": "de-DE,de" 
    }, 
    "chromeOptions": { 
     "args": [ "--ignore-certificate-errors" ], 
     "extensions": [ ] 
    }, 
    "platform": "ANY", 
    "version": null 
} 

Ama yine de ingilizce sayfaları talep eder ve bu da can Tercihlerde içerik ayarlarını açarak görülebilir. Neyi yanlış yapıyorum? kısa

cevap

3

(Edit) Uzun hikaye:

  1. intl.accept_languages bir sayfa için talep edilmektedir hangi dilleri işlemek için tercihler anahtarıdır.
  2. (Sorunlar 104 & 95 gördüğünüz herhangi ChromeOptions sizin ya da dili bağları tarafından ayarlanmış olup olmadığını, aksi takdirde işe yaramaz) (daha yeni ve tercih edilen) ChromeOptions mekanizmasını kullanarak tercihleri ​​için yeteneği ayarlayın.

    ChromeOptions tercihleri ​​ayarlamak için destek henüz tam olarak uygulanmadı. Yani, maalesef, gelen kirli geçici çözümü kullanmak zorunda benim comment 6 to Issue 95

    bir alternatif İstenen dil ayarlarına sahip bir kullanıcı profili oluşturmak ve bu kullanma seçeneğini (komut satırı) ayarlamak için ChromeOption kullanmak olabilir profili, chromedriver capabilities wiki page'da belirtildiği gibi.

+0

Bu çok yapar:

kıymık ile selenyum

from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from splinter.driver.webdriver import BaseWebDriver, WebDriverElement options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'}) browser = BaseWebDriver() browser.driver = Chrome(chrome_options=options) browser.visit('http://example.com') 

ile Bu çalışma 2 seçenek var bilhassa ben gibi t aynı firefox kullanır. Ama şu işe yaramıyor:/ – c089

+0

Evet, şimdi python'dan gelen aramalar için bunu onaylayabilirim. Yanlış gittiğini (hata raporu dahil) düşündüğüm ve düzeltilinceye kadar alternatif bir çözümün/geçici çözümün ne olabileceğiyle ilgili bir şeyler ekledim. Muhtemelen umduğun cevap değil. Ama umarım biraz yardımcı olur, yine de. – zpea

+0

Çabalarınız için teşekkür ederiz ve hatayı gönderiyoruz :) – c089

0

Pyhon örnekler

Not: Ben "tr, en_US" kabul dili ile test, ancak yerel mevcuttur olduğunca uzun tr_TR işe yaramaz neden görmüyorum sistem

Splinter Yalnızca API

from splinter import Browser 
from splinter.driver.webdriver.chrome import Options 

options = Options() 
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'}) 

browser = Browser('chrome', options=options) 

browser.visit('http://example.com') 

Splinter ve selenyum API

from splinter import Browser 
from selenium import webdriver 

options = webdriver.ChromeOptions() 
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'}) 

browser = Browser('chrome', options=options) 

browser.visit('http://example.com')