CasperJSがMacOSXとフレッツ光で不安定な時にある設定で治った話
CasperJSはWebの自動テストやコマンドラインからの情報取得を行えるヘッドレスブラウザです。デフォルトではPhantomJSを内部的に使用しており、それの糖衣構文的な役割をになっています。
Curlでの自動化では困難であったJavascriptの実行や面倒であったセッション管理も行えるので、例えばSNSなどにログインして自動投稿したりといったスクリプトなんかも簡単に作る事が出来ます。
さて、そんな便利なCasperJSなのですが、使っていると動いていたはすのスクリプトがネット接続環境を変えるととつぜん不安定になったりといった症状に見舞われる事があります。
筆者もそのような問題が発生した時、MacOSXの設定で回避できたのでここにメモをしておきます。
IPV6を切る
原因は、IPV6でした。CasperJS(というかPhantomJS)が十分に対応出来ていない為、接続先がv6であった場合は動作に支障をきたします。
そこでシステムのネットワーク設定から使用しているインターフェースを選択し、TCP/IPのタブからIPV6の「自動」の設定をローカルのみに変更します。
これでCasperJSの不安定が解消されました。また副作用として筆者の環境の場合は普段のWebの速度も向上した様です。
MacOSとフレッツ光とIPV6
どうもMacOSとフレッツ光でIPV6使っている方でネットワークが不安定になったり遅くなったりといった方は多数いらっしゃるようです。
そういった場合は上記の設定を試してみるのも一つの手かもしれません。
根本的にIPV6を切る
システム設定からではlink-local onlyには出来ますが、完全にIPV6をオフにはできません。完全にオフにするにはターミナルから以下のコマンドを実行します。これでWIFI接続についてすべてのIPV6を無効にできます。
sudo networksetup -setv6off Wi-Fi
ちなみに戻すのは以下のコマンドです。
sudo networksetup -setv6automatic Wi-Fi