クラウド時代のWebアプリケーション・スマートフォンアプリを開発・運用する会社です。 03-4577-8680 03-6673-4950

[Golang] agoutiでSelenium WebDriverを使う

2017-05-31

(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の具体的な内容については別記事にまとめたいと思います