事象
ごくたまにAzureのログイン画面が以下の様に英語で表示されてしまう。

Azureの他のサイトは日本語で表示されているのに、ログイン画面だけ英語になる。
また、何度か色々な画面遷移していると日本語表示に変わった。
対応方法・解説
Chromeの設定
確認したところ言語の設定が以下の様になっていた。

この優先順位とは、HTTPリクエストヘッダーのaccept-languageに相当する設定と思われる。
そのため、英語表示行えるサイトはこれに従い英語表記となる。
但し、この設定が正しく評価して表示するサイトはごく少数な気がする。
(私の知っている限りは、はてなブログのツールバーの一部および管理者画面、Amazonセラーセントラル位)
よって、優先言語を日本語を第一位に設定すれば無事解決した。
Cookieの設定
上記優先言語の設定を変更せずとも、日本語に切り替わったケースがあった。
これは、多分Cookieに表示するための情報を保持されたためと思われる。
そのため、シークレットモードで再度アクセスすると、英語表示に戻ってしまった。
よって、恒久的な対応としては、上記の通り優先言語設定を日本語にする必要がある。
Chromeの日本語表示
優先言語の三点リーダーを押すと、「Google Chromeをこの言語で表示」という設定がある。
これは、Chromeの各種部分をその指定した言語で表示する機能である。
この設定自体は、サイトを日本語で表示するための機能は直接的には存在しないと思われる。(※1)
※1 但し、当設定をチェックすると言語の優先順位も先頭に入れ替わった。
よって、当設定を行うことで優先順位も同時に設定されるというのが正しい理解と考えている。
Seleniumでの対応方法
上記より、Seleniumで--lang=jaと指定しているのは、上記のChromeの日本語表示と思われる。
また、どうもSleniumは、言語の優先順位は英語が第一位のままな気がする。
そのため、日本語サイトをアクセスする正しい設定は以下の様な実装が必要と考える。(※2)
from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from splinter.driver.webdriver import BaseWebDriver, WebDriverElement option = Options() option.add_experimental_option('prefs', {'intl.accept_languages': 'ja'}) option.add_argument('--lang=ja-JP') driver = webdriver.Chrome(options=option) (以下略)
※2 但し、コードの一部の抜粋 & 実際に動かしていないコードである。