説明
Capabilitiesとはブラウザ(WebDriver)の設定情報を表したまとまった情報を意味し、DesiredCapabilitiesはブラウザごとに要求される設定情報を示します。DesiredCapabilitiesは主に、様々なOS上で異なるブラウザでテストする場合(例えばSelenium GridやAppium)で設定する必要があります。Capabilitiesの数ある設定情報からブラウザごとに要求されるDesiredCapabilities情報は、そのうちいくつか(3項目~6項目位)です。
以下、Javaを例として話を進めていきます。設定情報をまとまった単位で取得したい場合は、RemoteWebDriverクラスのメソッドであるgetCapabilities()でブラウザ情報をまとめて取得することが出来ます。戻り値の型はCapabilitiesとなります。
実際のプログラムでブラウザに設定する場合は、色々方法がありますがその1つを紹介します。Capabilitiesインターフェースの実装クラスである、DesiredCapabilitieクラスの引数なしコンストラクタでインスタンスを作成します。そして、そのインスタンスに対してsetCapabilityの引数で「capabilityName」と「value」を指定してブラウザ設定をします。次に、SeleniumGridなどを利用する場合は、ブラウザ情報を設定したインスタンスをRemoteWebDrivrの引数に渡します。
下記の表は、ブラウザ設定情報(一部抜粋)に関してまとめたものです。
capabilityName | value | comment |
applicationCacheEnabled | true または false | アプリケーションキャッシュの利用可否 |
rotatable | true または false | 回転可能可否 |
handlesAlerts | true または false | モーダルポップアップの利用可否 |
databaseEnabled | true または false | データベースの利用可否 |
version | string | ブラウザのバージョン |
platform | string | ブラウザが動作するプラットフォーム |
nativeEvents | true または false | ブラウザ内においてマウスとキーボード入力シミュレートの利用可否 |
acceptSslCerts | true または false | SSL証明書を許可すべきかどうか |
webStorageEnabled | true または false | webStorageの利用可否 |
locationContextEnabled | true または false | ブラウザ位置環境の参照可否 |
browserName | string | ブラウザ名 |
takesScreenshot | true または false | ブラウザのスクリーンショット利用可否 |
javascriptEnabled | true または false | カレントページのjavascript利用可否 |
cssSelectorsEnabled | true または false | 要素検索にてcssSelectorの利用可否 |
mobileEmulationEnabled | true または false | デスクトップ版Chromeからモバイル機器Chromeの利用可否(エミュレートが可能かどうか) |
takesHeapSnapshot | true または false |
メモリーリークを見つける為のヒープのスナップショット取得機能の利用可否 |
また、capabilityName「platform」(Enum Platform)には以下が定義されています。
ANDROID:public static final Platform ANDROID
ANY:public static final Platform ANY
EL_CAPITAN:public static final Platform EL_CAPITAN
LINUX: public static final Platform LINUX
MAC :public static final Platform MAC
MAVERICKS :public static final Platform MAVERICKS
MOUNTAIN_LION :public static final Platform MOUNTAIN_LION
SNOW_LEOPARD :public static final Platform SNOW_LEOPARD
UNIX :public static final Platform UNIX
VISTA :public static final Platform VISTA
WIN10 :public static final Platform WIN10
WIN8 :public static final Platform WIN8
WIN8_1 :public static final Platform WIN8_1
WINDOWS :public static final Platform WINDOWS
XP :public static final Platform XP
YOSEMITE :public static final Platform YOSEMITE