2013-09-05 2 views
6

Загрузите ChromeDriver, и по умолчанию язык браузера переведен на английский язык, мне нужно изменить его на испанский, и я не смог.Установите язык Chrome с помощью 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") 
} 

ответ

11

Вы можете сделать это, добавив Chrome command line switches "--lang".

В принципе, все, что вам нужно, это начать ChromeDriver с аргументом ChromeOption--lang=es, см. API для получения более подробной информации.

Ниже приведен рабочий пример кода C# для запуска Chrome на испанском языке с использованием Selenium.

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

Код Java должен быть практически таким же (непроверенным). Помните, что локаль здесь находится на языке формы [-country], где язык является 2-буквенным кодом из 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

Спасибо, они ответили, это сработало! – elcharrua

+0

Жаль, что это было плохо. Я извиняюсь. – elcharrua

2

я имел проблемы с Хром, используя формат даты (мм/дд/гггг) вместо GB США дд/мм/гггг формат (хотя я установить их в Chrome). Использование:

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

разрешено это.

5

Для меня --lang не работает. Кажется, что задан язык первой открытой вкладки, все остальные процессы chrome начинаются с --lang = en-US.

Что работы заключается в следующем:

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

это работало для меня, используя http://www.reliply.org/tools/requestheaders.php для проверки. –

0

Для меня --lang также не работает. Я хотел выполнить тесты входа в Facebook с определенным языком (en-US вместо en-GB), и я обнаружил, что некоторые страницы (например, Facebook) устанавливают интерфейс в соответствии с переменной окружения системы LANG ... Так что если выше ответы не работа, попробуйте изменить переменную среды LANG. Протестировано в Linux.