web-dev-qa-db-ja.com

Selenium ChromeDriverを使用してChromeの言語を設定する

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")
}
20
elcharrua

これを行うには、Chromeの コマンドラインスイッチ "--lang"を追加します。

基本的に、必要なのはChromeDriverChromeOption 引数で開始することです--lang=es、詳細はAPIを参照してください。

以下は、Seleniumを使用してスペイン語でChromeを開始する方法のC#コードの実際の例です。

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

Javaコードはほとんど同じです(テストされていません)。ここでのロケールは、language [-country]という形式です。languageは、ISO-639の2文字のコードです。

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
}
17
Yi Zeng

私にとって、-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);

Chrome GB dd/mm/yyyy形式ではなくUS日付形式(mm/dd/yyyy)を使用している場合に問題がありました(Chromeで設定した場合でも)。

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

これを解決しました。

4
Paul Yardley

私のために --langも機能しませんでした。特定の言語(en-GBではなくen-US)でFacebookログインテストを実行したかったのですが、一部のページ(Facebookなど)がシステム環境変数LANG...に従ってインターフェイスを設定していることがわかりました。上記の回答が機能しない場合は、LANG環境変数を変更してみてください。 Linuxでテスト済み。

1
omikron

私は同じことを試していましたが、上に挙げたものは何もうまくいきませんでした。ついに私は以下を試しましたがうまくいきました:

ChromeOptions chromeOptions = new ChromeOptions();

Map<String, Object> prefs = new HashMap<String, Object>();

prefs.put("intl.accept_languages", "ja-jp,ja");

chromeOptions.setExperimentalOption("prefs", prefs);

WebDriver driver = new ChromeDriver(chromeOptions);
0
Anuj Jain

RubyでSeleniumを使用している場合:

私はそれをこのように機能させました:

prefs_hash = {
       'credentials_enable_service' => false,
       'profile' => {
           'password_manager_enabled' => false,
       },
       'intl.accept_languages' => 'fr-FR', // <- here
    }

// [...]

browser = Watir::Browser.new :chrome, :prefs => prefs_hash, switches: switches, desired_capabilities: caps

0
Nsy