【Selenium】python + ChromeDriver で Accept-Language ヘッダを設定する方法

多言語対応をしているサービスのSeleniumテストを書いていると、Accept-Languageヘッダを書き換えたいことがたまにあります。
python + ChromeDriverの構成でこれをやろうとしてハマったので、記事にしておきます。

先に回答を書くと、次のように書けば大丈夫です。

from selenium.webdriver import Chrome, ChromeOptions, Remote

# ChromeOptionsでAccept-Languageヘッダを設定できる
options = ChromeOptions()
options.add_experimental_option('prefs', {'intl.accept_languages': 'ja'})

# ローカルの場合
executable_path = '/path/to/chromedriver'
driver = Chrome(executable_path=executable_path, desired_capabilities=options.to_capabilities())
driver.get('https://www.google.co.jp')
driver.execute_script('return window.navigator.languages')
# [u'ja']
driver.quit()

# RemoteDriverの場合も同様
driver = Remote(command_executor='http://remote-driver-host:4444/wd/hub', desired_capabilities=options.to_capabilities())
driver.get('https://www.google.co.jp')
driver.execute_script('return window.navigator.languages')
# [u'ja']
driver.quit()

以下のStackOverflowの記事からどうにか回答に辿り着きました。 stackoverflow.com

add_experimental_optionを使うのはあくまでも回避策っぽいので、将来的には変わるかもしれません。

ついカッとなってスポーツジムに入会した話

つい最近、ルネサンス両国というスポーツジムに入会しました。

以前からスポーツジムは興味あったのですが、いざ入ってみようとネットで情報を調べてみても、なかなか自分が知りたい情報が出てこなくて困りました。なので、今回はそのあたりを書いてみようかなと思います。

見学〜入会まで

まずは、見学にいくために電話しました。日曜だったのですが、何時に行っても大丈夫そうな雰囲気でした。見学とは別に一日体験みたいなのもあるのですが、そちらの場合は有料になります。

見学に行くと、新人らしき女性スタッフが対応してくれました。最初に簡単な個人情報や入会の目的とかを書かされて、そのあと施設全体を見学させてもらいます。

施設は、ホームページで紹介されているのと特に変わりない印象でした。2年前にリニューアル工事したばかりらしく、全体的にキレイです。もうすぐプールをリニューアル工事するらしいです。

自分は筋トレ目的なのでスポーツジムが一番気になってたのですが、素人目には必要十分なスペースと設備が整っている感じです。

あとは、湯船があるのがいいですね。広くはないのが難点ですけど。

一通り見させてもらって特に不満はなかったので、その場で入会手続きしました。

自分は、会社の健康保険組合の関係で法人会員となり、月額8,424円でした。ちなみに、自分の場合、都度会員でも750円なのでけっこう迷いました。週3回以上なら月額のほうがお得なのですが、週3回通うかどうかはギリギリのラインです。とはいえ、逆にモチベーションを保つ理由になりますし、毎回チケット買ったりするのも面倒なので、月額会員になりました。

しかし、月額の場合、提携会社のクレジットカードに契約しないといけないので、それが若干面倒でした。

なにかのキャンペーンなのか、2ヶ月間3つのオプションが無料でした。

まず、オールレンタルオプションという、タオル・ウェア・シューズがレンタルできるオプションです。完全に手ぶらで通えるので、これはとても便利です。ウェアがルネサンスのロゴ入りで、明らかにレンタルという見た目でダサいという欠点はありますが、めんどくさがりな自分は2ヶ月後もこのオプションだけは続けてしまいそうです。

次に、水素水が飲めるというオプション。これは効果とかよくわからなかったので、ノーコメント。味は正直おいしくなかったです。

後は、ぐっピープラスというオプションです。これは、施設内のショップが10%割引になったり、他にもいくつかの提携施設で割引してもらえたりするオプションのようです。割引メリットが大きい人なら使ってもいいと思いますけど、自分は多分続けないです。

カラダ測定&トレーニングメニュー作成

入会直後は、カラダ測定というものを行った後にトレーナーがトレーニングメニューを作成してくれるというサポートがあります。

カラダ測定は、InBody370という機材で測定を行います。体重や体脂肪、筋肉量、構成成分、標準体型との乖離などを結果として印刷できます。これは、このときだけではなく、いつでも勝手に測定できるので、これからトレーニングしていく上での指標になって嬉しいです。

自分が測定してみると、「筋肉量を+10.2kg調節してください」という結果が出ました。どうみても貧弱です、本当にありがとうございました。

今ホームページ見てみると、これとは別にアライメントチェックという姿勢チェックがあるらしいですが、自分のときはなかったですね。なんででしょう。。

これが終わると、トレーナーと話しながらトレーニングメニューを決めていきます。自分の目標に合わせて、トレーニングメニューだけでなくて食事についてもアドバイスしてくれます。自分が、「筋肉で体重10kg増やしたいです!」と言ったら、「一日四食食え(要約)」と言われました。

事前に聞いた感じでは、無料ではトレーニングメニュー作成までで、トレーニングをサポートしてもらうのは有料っぽかったのですが、自分のときはトレーニングメニューを一通り終えるまで1時間くらい付きっきりでアドバイスしてくれました。器具の使い方、姿勢、どれぐらいの重さから始めたらいいかとか、筋トレ初心者にはとてもありがたかったです。

自分がどういうメニューを行ったかは、用紙に記入してバインダーに保存できるようになっています。トレーニング記録がちゃんと残せるのは、メニューを考えたり、自分の成長を確認する上でいいですね。

混雑状況

最初に見学したときは、日曜の昼間でしたが、そのときはそこそこ空いてました。次のカラダ測定のときは祝日の火曜日の夕方で、そのときはけっこう混んでいて、有酸素運動系はほぼ満員、筋トレ系もいくつかは待たないと使えない感じでした。

スタッフさんに聞いたところ、月曜が休館日なので火曜は基本混雑するらしいです。あとは、ナイト会員という平日夜だけの会員が多いので、平日20:30以降は混むらしいです。土日はそうでもないとのこと。

エレベーターに混雑しやすい時間帯が貼りだしてあったので、参考までにどうぞ。

f:id:miya-jan:20151107184939j:plain

その他

スタッフは基本的に挨拶とかはちゃんとしています。とはいえ、基本的にアルバイトっぽいので、対応の良し悪しとかは人によるでしょうね。

スタジオレッスンはまだ1回も参加してないですが、通りすがりに見る感じではほぼ満員という感じです。自分は、マイペースでトレーニングしたいので、多分行かないかなと思います。

まとめ

まだ2〜3回しか通ってないですけど、現状は特に大きな不満はないです。混雑してる時間帯さえ避けられれば、快適に筋トレを続けられそうです。

入る前は、区のスポーツセンターとかにあるジムの方が安いので迷ってたのですが、カラダ測定とかトレーニングメニュー考えてもらったりとかできるのはやっぱりいいですね。

ウルトラマラソンでサブ10を目指す場合の指標

今年の秋に、四万十川ウルトラマラソンに参加することになったので、サブ10を目指す場合のレースペースや練習の目安についてメモしてみます。

まず、自分は今回が初めてのウルトラマラソンなので、岩本能史コーチの100kmマラソンは誰でも快走できるという本(以下ウルトラ本と略します)を読みました。ウルトラ本の中では、ウルトラマラソンのタイムの目安として「F2.7の公式」が紹介されています。これは、直近のフルマラソンのタイムの2.7倍がウルトラマラソンのタイムの目安となるというものです。

「F2.7の公式」から逆算すると、サブ10を狙うためにはフルマラソンを、10時間 ÷ 2.7 ≒ 3.70時間 ≒ 3時間42分ぐらいで走れる力が必要ということになります。

フルマラソンを3時間42分で走るためには、3時間42分 ÷ 42.195km ≒ 5.27分/km ≒ 5分16秒/kmのペースで走れる必要があります。中途半端なので5分15秒/kmをフルマラソンのレースペースと考えます。

ウルトラ本の中で紹介されている練習メニューの中に15kmビルドアップ走というものがあります。これは、最初の5kmをフルマラソンのペース+2分、次の5kmをそこから-1分、ラスト5kmをさらに-1.5分するものです。これをフルマラソン5分15秒/kmのペースに当てはめると、最初の5kmを28分15秒(5分39秒/km)、次の5kmを27分15秒(5分27秒/km)、ラスト5kmを25分45秒(5分09秒/km)となります。

ウルトラ本の練習メニューのなかにはレースペース走もあるので、それも求めておきます。といっても単純に、10時間 / 100km = 6分00秒/kmとなります。

まとめ

メニュー 目標タイム ペース
ウルトラマラソン(100km) 10時間 6分00秒/km
フルマラソン(42.195km) 3時間42分 5分15秒/km
ビルドアップ走(15km) 28分15秒
27分15秒
25分45秒
5分39秒/km
5分27秒/km
5分09秒/km

サブ10を目指す上で、これぐらいの数字を覚えておけばよさそうです。今の自分の力だと少し厳しいので練習がんばらないとなのですが、夏に練習量増やすのはきついですね。。

Selenium WebDriverをIE11で動かす方法

これまで、Selenium WebDriverをIE11で動かそうとするとエラーになったのですが、回避策がIssueの方で書かれていたので紹介します。

Issue 6511: IE11 exceptions with IEDriverServer: Unable to get browser

Issueに書かれている通り、IE11でSeleniumテストを実行すると、ブラウザが立ち上がったあとに、"Unable to get browser"というエラーが出て失敗してしまいます。 これに対して今回書かれた回避策は、レジストリをいじるというものです。

32bit版Windowsの場合、"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE"というキーで"iexplore.exe"という名前にDWORDで0の値を設定すれば大丈夫とのことです。

f:id:miya-jan:20140422232458p:plain

試してみたところ、手元の環境ではたしかにSeleniumテストが正しく実行されるようになりました。

64bit版の場合は、"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE"というキーになるようです。

これまでブラウザの問題でWebDriver側ではどうしようもないと書かれていて、このまま放置されるのではないかと心配していたのですが、思っていたより早くに回避策が見つかったようでよかったです。

Garmin Forerunner 620 を mac で wifi 設定する方法

今週、GarminGPS時計であるForerunner 620(以下FR620)を買ったんですけど、macでのwifi設定ではまったのでメモします。

FR620のSettingsでwifiの設定をしようとすると、「Garmin Expressで設定してね!」的なメッセージが表示されるんですけど、実際にGarmin Expressで設定を保存しても、FR620に設定が送信される気配がなく、設定前と同じメッセージが表示されます。(Garmin Expressのバージョンは3.0.7.0時点、Windowsでは未検証)

で、GarminのForumとかで情報を調べていたら、以下の様な情報がありました。

これによると、Garmin Express Fitを使うと正しく設定されるようだったので試してみたところ、無事設定できました。

現状、こちらからダウンロードできるみたいですけど、Garmin Express FitはGarmin Expressに統合されたみたいなので、将来的にどうなるのかはよく分かりません。。

FR620、ランニング中のいろいろなデータが取得できて便利なんですけど、コミュニティが小さいからなのか、こういった細かいところがやっぱり粗く感じますね。 日本でのユーザー数がどれくらいなのか気になります。