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 件のコメント:
コメントを投稿