2013-09-05 16 views
6

Pobieram ChromeDriver i domyślnie język przeglądarki jest w języku angielskim, muszę zmienić go na hiszpański, a ja nie byłem w stanie.Ustaw język Chrome za pomocą Selenium ChromeDriver

public WebDriver getDriver(String locale){ 
    System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe"); 
    return new ChromeDriver(); 
} 

public void initializeSelenium() throws Exception{ 
    driver = getDriver("en-us") 
} 

Odpowiedz

11

Można to zrobić poprzez dodanie Chrome command line switches "--lang".

Zasadniczo wystarczy tylko uruchomić ChromeDriver z argumentem ChromeOption--lang=es, zobacz szczegóły interfejsu API.

Poniżej znajduje się działający przykład kodu C#, aby uruchomić Chrome w języku hiszpańskim za pomocą Selenium.

ChromeOptions options = new ChromeOptions(); 
options.AddArguments("--lang=es"); 
ChromeDriver driver = new ChromeDriver(options); 

Kod Java powinien być prawie taki sam (nietestowany). Pamiętaj, że tutaj znajduje się język formalny [-country], gdzie język jest dwuliterowym kodem ISO-639.

public WebDriver getDriver(String locale){ 
    System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe"); 
    ChromeOptions options = new ChromeOptions(); 
    options.addArguments("--lang=" + locale); 
    return new ChromeDriver(options); 
} 

public void initializeSelenium() throws Exception{ 
    driver = getDriver("es"); // two letters to represent the locale, or two letters + country 
} 
+0

Dzięki temu odpowiedzieli, że działało świetnie! – elcharrua

+0

Przepraszam, że to było moje zło. Przepraszam. – elcharrua

2

miałem problemy z Chrome przy użyciu US format daty (dd/mm/rrrr) zamiast GB dd/mm/rrrr formatu (choć miałem ustawić je w Chrome). Zastosowanie:

options.addArguments("--lang=en-GB"); 

rozwiązało to.

5

Dla mnie, --lang nie działał. Wygląda na to, że ustawiono język pierwszej otwartej karty, wszystkie inne procesy chrome zaczynają się od --lang = en-US.

Co nie działa to:

DesiredCapabilities jsCapabilities = DesiredCapabilities.chrome(); 
ChromeOptions options = new ChromeOptions(); 
Map<String, Object> prefs = new HashMap<>(); 
prefs.put("intl.accept_languages", language); 
options.setExperimentalOption("prefs", prefs); 
jsCapabilities.setCapability(ChromeOptions.CAPABILITY, options); 
+1

to działało dla mnie za pomocą http://www.reliply.org/tools/requestheaders.php w celu weryfikacji. –

0

Dla mnie --lang również nie działa. Chciałem przeprowadzić testy z Facebooka z określonym językiem (en-US zamiast en-GB) i odkryłem, że niektóre strony (np. Facebook) ustawiają interfejs zgodnie ze zmienną środowiskową systemu LANG ... Więc jeśli powyższe odpowiedzi nie pracować, spróbuj zmienić zmienną środowiskową LANG. Testowane w systemie Linux.

Powiązane problemy