Selenium
chrome-extension
SeleniumIDE

Kantu for Chrome (Chrome版SeleniumIDEっぽいもの)はどんなものか調査してみた

More than 1 year has passed since last update.

はじめに

  • 公式ブログでもあるように最新のFirefoxでSeleniumIDEが利用できなくなっています
    • Selenium IDEの起動自体は上手くいきますが、テストファイルの読み込みやテストの記録/作成など何もできません
    • 対処法としてはFirefox ESR版の入手かブラウザバージョンを下げるかの2択です
  • @hiroshitoda さんの2016 Seleniumゆく年くる年でもありましたが、このままだとFirefox57からSeleniumIDEが使えなくなります
    • そこで同じようなことができるツール Kantu for Chrome で何がどこまでできるのか調査してみようと思いました

Kantu for Chromeとは

今回検証すること

  • Selenium IDEと比べて
    • 同じような機能があるのか?
    • 使えるコマンドは?
    • 実際使ってみてどうだった?

Selenium IDEと同じような機能があるのか?

テストスイート/テストケースのインポート

  • SeleniumIDEではあったテストスイート/テストケースの扱いはなく、インポート/エクスポート共にテストケースのみ スクリーンショット 2017-08-31 9.19.26.png

テストの記録/再生

使えるコマンドは?

  • Kantu for Chrome Welcome!には以下のように書いてありました
    • SeleniumIDEと同様にSeleneseコマンドをサポートしている
    • まだLight版なのでSeleniumIDEのようにコマンドが充実しているわけではないが、これから徐々にSeleniumIDE相当に開発が進んでいく可能性がある
      • 1ヶ月ほど前に記事を書き始めましたが、その頃はなかったコマンドが 2017/09/20 現在いくつか追加されていました => 開発が進んでいる感じですね^^
  • getEval のようなjavascript系の操作はできなさそう

コマンド一覧

SeleniumIDEで馴染みのあるコマンドがほとんどでした

  • click
  • clickAndWait
  • open
  • pause
  • type
  • select
  • selectAndWait
  • selectFrame
  • assertAlert
  • assertConfirmation
  • assertPrompt
  • waitForPageToLoad
  • answerOnNextPrompt

実際使ってみてどうだった?

  • 単純な操作をするには利用できそうだが、書いていて今一歩と感じるシチュエーションは結構ありそう
  • store による変数の扱いや getEval などのjavascript系の操作もできないためできることは限定される
    • SelBlocksのようなif/forなどの条件分岐を導入することはできなさそう
  • 公式にも Need a specific feature added? => Let us know! We can only add features and fix bugs that are reported to us. とあるのでこれからに期待できるのでは!

個人的には・・・

  • selenium-webdriverを利用するには以下のような開発環境の構築が必要なります
    • ブラウザのインストール
    • (必要に応じて)ドライバインストール
    • テストコードの作成
    • テストを動かすための設定ファイルなどの作成
  • そのため、自動テストを組むならSeleniumIDEがお手軽という点では一番かもしれません
  • ただ、kantu for Chromeの使い心地を考えると、今はdockerを利用すればその少々面倒な手間もかからないのでdockerでいいのでは!と思いました
    • 公式にもイメージがありますし、以下のように自分でDockerfileを作ってみたり
    • Ex) https://github.com/RustyNail/docker-selenium
    • ブラウザ/ドライバのインストールもされているため、DLして docker-compose up するとすぐに動きます