LoginSignup
4
2

More than 5 years have passed since last update.

WebKitGTK+ のWebDriverサポート

Posted at

こんにちは!
みなさん、各ブラウザでのWebDriverの実装状況、毎日見てますよね!!!???!!!?!

GitHub上のこのリンク集を見ていると、ンッなんだこれは見慣れないな、と目に留まるものがあるわけです。
「WebKit GTK port」
なんですかこれは。わからないな。1

WebKitGTK+

GNOMEプラットフォーム公式のWebエンジンです。
2018年7月29日現在での最新バージョンは2.21.5です。
ベンダー中立なオープンソースのWebエンジンとして、貴重な存在だと思われます。

WebDriverサポートが始まったのは、2017年9月リリースのバージョン2.18からです。
リリース時、GNOMEのコントリビューターのひとりである Carlos Garcia Campos がブログに解説記事を掲載しています。
https://blogs.igalia.com/carlosgc/2017/09/09/webdriver-support-in-webkitgtk-2-18/

昔のWebKitGTKはヘッドレス動作できたような気がするのですが、現行バージョンではヘッドレス動作するオプションが無いようです。今後に期待したいですね。

Seleniumの対応状況

Selenium公式の言語バインディングでは、バージョン3.8.0からいち早くPythonが対応しています。
しかし残念なことに、他の言語バインディングでは対応が進んでいません。

実際に使ってみよう

現状、気軽に使えるプラットフォームは Ubuntu Linux 18.04 LTS と Fedora くらいのようです。
Ubuntu Linux 18.04 LTS では、次のように apt で気軽にインストールできます。

$ sudo apt install webkit2gtk-driver

以前紹介したjBrowserDriverのように 2 、ブラウザドライバがミニブラウザを内包しているつくりのようです。環境構築が手軽ですね。

ベンチマーク

日本Seleniumユーザーコミュニティの提供するサンプルページ上で基本的なAPIを100回実行して、1回あたりの平均値を取得するだけの簡易ベンチマークをやりました。
https://github.com/hiroshitoda/WebDriverBenchmark.py

実行環境はAWS上のc5.largeインスタンスです。

結果は次の通りでした。
あんまり速くないですが、操作ごとに速度があまり変わらないのが気になりますね。ブラウザ操作というよりは、Webサーバーとしての動作が遅いのかもしれず、まだまだ最適化の余地があるのかもしれませんね。

ChromeDriver FirefoxDriver via GeckoDriver WebKitGtkDriver
webdriver.get 54ms 95ms 298ms
find_element_by_id 7ms 9ms 89ms
find_element_by_css_selector 6ms 8ms 86ms
clear 16ms 8ms 87ms
send_keys 31ms 11ms 96ms
click 34ms 214ms 91ms
get_screenshot_as_base64 81ms 124ms 110ms

私もあまり動作検証ができていないのですが、動作時のリソース消費や安定性、Raspbianでの動作の感じなど、もうちょっと調べてみたいところですね。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2