(Seleniumの説明は割愛します)
GoのSelenium WebDriverクライアントにagoutiがあります。
GoDocもあり、わりとサクっと使えます。
問題はどうやってDesiredCapabilities
を書けばいいのかがわかりづらいことなのです。
で、結論から言いますとソースを見て試しました。
まず、agouti.Capabilities
の定義はmap[string]interface{}
となっています。
SeleniumのDesiredCapabilitiesの表のKey
列がMapのキーになります。
Type
に書かれている通り、Mapの値にはいくつかの型があるわけですが、これらもGo側ではinterface{}
に入れることが可能というわけです。
これだけであればまだ簡単なのですが、各ブラウザごとのDesiredCapabilitiesは個別のデータ構造になっている場合があります。
たとえばChromeDriverの場合、MapとしてChromeOptions
というキーを持ち、その値(interface{}
)にさらにmap[string]interface{}
を持つ構造になっています。
最終的に、これらDesiredCapabilities
の構造が正しければ、以降の結果についてはDriver側に依存することとなります。
つまりそのDriverのリファレンスを見る必要がある、ということになりますね。
#ChromeOptions
の具体的な内容については別記事にまとめたいと思います