2012年8月4日土曜日

希望を見出しても、重力に魂を引かれたエゴに押しつ(以下略


希望を持つことはいいことです。

seleniumの2.25から複数のCapabilitiesクラスを指定することができるようになった。

今までは
new FirefoxDriver( );
new FirefoxDriver( DesiredCapabilities.firefox() );
new FirefoxDriver( new FirefoxBinary(), new FirefoxProfile(), DesiredCapabilities.firefox());
new FirefoxDriver( DesiredCapabilities.firefox() );
こんな感じでFirefoxを起動していたものが、

  Capabilities cap = DesiredCapabilities.firefox();
  Capabilities cap2 = DesiredCapabilities.firefox();

new FirefoxDriver(  cap   ,  cap2   );
new FirefoxDriver( new FirefoxBinary(), new FirefoxProfile(),  cap ,  cap2 );


こんな感じにできるようになった。
ごっそり変わったソースの変化がデグレを予感させるが、googleさんはデグレなんかしませんよね。

もともとCapabilitiesクラスは起動設定を保持するクラス(プロキシとか、起動オプションとか)
であり、最近はChromeOptionsとかFirefoxProfileが台頭してきて、
ただでさえここ最近は居場所がない状態だった。
関係するコンストラクタもdeprecatedされまくってた。

なぜゆえに、時代に逆行するようなことが起こったのか、起動設定をひとつのブラウザで
複数指定できるようにしてあるのか、いまいち要領が得ない。
多分Firefox14以降の仕様にあわせた感じなんだろうけど。

で、肝心のソースの中身なんだけど、前者のCapabilitiesは希望的な位置づけで
後者のCapabilitiesは必須的な位置づけらしい。

何のこっちゃようわからん。一応Firefoxdriver内では2つのCapabilitiesをマージして
FirefoxProfileに変換し、設定を読み込んでいる。


だったら最初から
  new FirefoxDriver( new FirefoxBinary(), new FirefoxProfile())
これ使えって話じゃないかと思ったりする。今後何か意味が出てくるんだろうか。

なお、CapabilityType.ENABLE_PROFILING_CAPABILITYは希望Capabilitiesに
セットさせて動作させておく模様。



0 件のコメント:

コメントを投稿