2012-07-02 20 views
6

Staram się, aby mój sterownik do zdalnego Chrome prosił strony w języku niemieckim zamiast angielskim. Po chromedriver documentation i list of chrome preferences, starałem się ustawić go tak:WebDriver: Jak określić preferowane języki dla Chrome

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); 

I widzę osiągnie chromedriver z pliku dziennika:

[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 
} 

Ale to nadal żąda angielskich stron i może to również zobacz, otwierając ustawienia zawartości w preferencjach. Co ja robię źle?

Odpowiedz

3

(Edit) Krótko mówiąc:

  1. intl.accept_languages jest kluczem preferencje manipulować jakie języki są wymagane dla strony.
  2. Ustaw zdolność do preferencji używając (nowsze i preferowany) ChromeOptions mechanizm (w przeciwnym razie nie będzie działać, jeśli jakieś ChromeOptions są ustawione przez ciebie lub twoich powiązaniach językowych, zobacz Zagadnienia 104 & 95).

    Obsługa ustawień ustawień ChromeOpcje nie została jeszcze w pełni wdrożona. Tak, niestety, trzeba użyć brudną obejście z mojego comment 6 to Issue 95

    alternatywa może być stworzenie profilu użytkownika z żądanych ustawień językowych i używać ChromeOption ustawienie (wiersz poleceń) opcję, aby korzystać z tego profil, jak wspomniano na chromedriver capabilities wiki page.

+0

To sprawia, że ​​wiele zmysłu, szczególnie jak i t używa tego samego klucza, którego używa firefox. Ale to nie działa, albo:/ – c089

+0

Tak, teraz mogę to potwierdzić również dla wywołań z Pythona. Dodałem trochę tekstu o tym, co myślę, że pójdzie nie tak (w tym raport o błędzie) i jakie może być alternatywne rozwiązanie/obejście problemu, dopóki nie zostanie naprawione. Prawdopodobnie nie jest to odpowiedź, na którą liczyłeś. Ale mam nadzieję, że to trochę pomoże. – zpea

+0

Dziękuję za wysiłek i zgłoszenie błędu :) – c089

0

przykłady Pyhon

Uwaga: przetestować go z „en, pl” przyjętym językiem, ale nie rozumiem, dlaczego to nie będzie działać z de_DE ile locale jest dostępny na system.

Ta praca z selenem

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') 

Z drzazga jest 2 opcje:

Splinter API tylko

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 i selen 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') 
Powiązane problemy