この記事はSelenium/Appium Advent Calendar 2016の6日目の記事です。
5日目はkimpakuのJenkins+Seleniumで非推奨の負荷試験をやってみたでした。
こんにちは!
名前が思い出せなくてアレって言うことが増えましたね!!
Seleniumのアレ
Seleniumやるときにブラウザーと一緒に用意しなきゃいけないアレは総称がなくて、説明するときに困ります。
Google Chrome/Chromium には chromedriver
Microsoft Edge には MicrosoftWebDriver
最近では Firefox にも geckodriver が必要ですし、
仮面ライダードライブでいよいよ呼称がどうなるかと思ってたら普通にドライブドライバーでズコーでしたよね。
これらはブラウザーにREST APIを提供するための一種のプロキシーなわけですが、プロキシーという言葉が指す範囲は広すぎて誤解を生みやすいので、なんとかこうSeleniumの文脈に閉じた専用の名前が欲しいところですね。
将来的にそういう用語が生まれることに期待しつつ、この記事ではSeleniumのアレのことを暫定的に「ジャスタウェイ(仮)」と表記することにします。
更新情報をどうやって得るか
ジャスタウェイ(仮)はブラウザーに合わせて更新していくのですが、ブラウザーの新バージョンが出ると各種メディアで報道されてわかりやすいのに比べると、ジャスタウェイ(仮)の更新情報はあんまり世の中に露出していなくてわかりにくい印象があります。
でも、実はジャスタウェイ(仮)の更新情報はリアルタイムに効率的に配信されていることがほとんどです。
GitHub の Releases フィードをチェックする
最近はオープンソースのジャスタウェイ(仮)はGitHub上で開発が進められていることが多くなりましたね。
案外知られていないのですが、GitHubのReleasesページのURLに .atom
というサフィックスを追加すると、リリース情報のRSSを取得できます。これをRSSリーダーに登録しておけば、リリース情報をすぐに得られます!
GitHubで確認できる主なジャスタウェイ(仮)のRSSフィードURLは次の通りです。
- GeckoDriver https://github.com/mozilla/geckodriver/releases.atom
- detro/ghostdriver https://github.com/detro/ghostdriver/releases.atom
- codeborne/ghostdriver https://github.com/codeborne/ghostdriver/releases.atom
- HtmlUnitDriver https://github.com/SeleniumHQ/htmlunit-driver/releases.atom
- jBrowserDriver https://github.com/MachinePublishers/jBrowserDriver/releases.atom
独自形式のフィードをチェックする
ChromeDriverとIEDriverServerはGoogle Cloud Storageで公開されていて、Google Cloud Storage APIを叩くことで独自形式のリリース情報を確認できます。
APIを叩くとなると多少の心構えが必要な気がしますが、サフィックス無しのURLにアクセスするだけで既定のAmazon S3互換の XML API を叩けますので、気軽に試してみましょう!
- ChromeDriver https://chromedriver.storage.googleapis.com/
- IEDriverServer https://selenium-release.storage.googleapis.com/
XMLのほかに、 JSON API でも同様の情報を取得できます。
- ChromeDriver https://www.googleapis.com/storage/v1/b/chromedriver/o/
- IEDriverServer https://www.googleapis.com/storage/v1/b/selenium-release/o/
このようにして得られたXML/JSONは、自分でがんばってパースして通知処理に流しても良いのですが、最近は定型処理を自動化するサービスがまた流行っているので、うまく利用するとだいぶお手軽になります。
- Microsoft Flow https://flow.microsoft.com/ja-jp/
- Zapier https://zapier.com/
- dlvr.it https://dlvrit.com/
- IFTTT https://ifttt.com
私の今のおすすめは、無料アカウントでもかなり複雑な処理を組める Microsoft Flow と、自前の処理をJavaScriptで簡単に書ける Zapier です。
日本SeleniumユーザーコミュニティのTwitter には、これらのサービスを活用して得られた更新情報をなるべく自動投稿しています。ぜひご参照ください。
OSやパッケージシステムの更新処理にまかせる
新しいSafariDriverは、AppleがSafariのアップデートに合わせて同梱してくれるようになりました。あえて更新情報をチェックしなくても、なんとかなります。
そのほか、最近は次のような標準的なパッケージシステムにもジャスタウェイ(仮)が登録されていることが増えました。ぜひ活用しましょう。
- Windows
- NuGet
- Chocolatey
- Mac
- Homebrew
- Linux
- apt
- yum
公式のWebサイトを見る
旧来の、最も効率的でないパターンです。
MicrosoftWebDriverェ...
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
MicrosoftWebDriverはWindows 10 Insider Previewの大型アップデートが入る際(つまり、Microsoft Edgeが大きく変わるタイミング)に更新される傾向にありますので、大型アップデートのリリース直後くらいにチェックすると良いかもしれません。
今回はここまで
次回はgluelan2013です。よろしくお願いします。
Selenium/Appium Advent Calendar 2016はまだまだ君の挑戦を待っているぜ!