nikkie-ftnextの日記

イベントレポートや読書メモを発信

SeleniumをラップしたHeliumをかっこよく🆒書けるようにラップする helium-cylinder 0.1.0をリリースしました

はじめに

ときは2021年、PyCon JP座長を務めた年1
connpassで勉強会を立てることが多く、怠惰なnikkieはブラウザ操作の自動化を考え始めます。

(ここまで読まれたごヒイキさまがた「なにか始まったぞ...」)

目次

Heliumとの出会い

ブラウザ操作自動化といえばSelenium
私もSeleniumで自動化を模索し始めましたが、そこでHeliumを知ります(たしかpyhackで聞いたのかな?)

HeliumはSeleniumのラッパーです。
現在のリポジトリでは「Selenium-python but lighter: Helium」と謳っています。
非常に簡単にブラウザ操作が実装できます。

Helium - Cool Python!

さて、そんなHeliumを使ってconnpassの操作を自動化するスクリプトをいくつか書いたnikkie氏。
そこでふと気づいたのです、「Pythonの知識を使ってかっこよくHeliumを使えるぞ」と。
具体的には以下の2つです

  • デコレータ
  • コンテキストマネージャ

これらを自作することでHeliumを使うコードが(私的には)かっこよくなったんです!

helium-cylinder

Heliumをかっこよく書けるラッパーライブラリをこのたびリリースしました。

Pythonの知識を使ってHeliumをラップしたコードは他の人の役にも立つだろうと、2021年段階でデコレータの実装の公開を準備していました。
ところが、座長を務め上げたあとに訪れたモチベーションの低下(connpassでもうたくさんイベント作らなくていい!)2

最近再びブラウザ操作自動化熱が上がってきたので、2021年時点で用意していたものを0.1.0として公開した次第です。
現在サポートしているのはデコレータだけですし、ChromeFirefoxとで作り込み具合が違うのですが、ちょっとずつ積み上げていきます(もちろんドキュメントもね)

直近の楽しみはhayasakaの進化ですね3
どのブラウザを使うかをデコレータで指定できると、ブラウザ操作の実装は同じでデコレータを変えるだけで使うブラウザを切り替えられるんですよ!🙌
新しいhayasakaを近日中にリリースできそうで、ワクワク!

終わりに

Heliumをラップしたライブラリ helium-cylinder を、2021年のお蔵入りの状態から一転、公開しました。
もう少し整備が必要なので今の段階では「お試しください」とは言えません。
整備(と進化)をお楽しみに!

画像の元のスライドは以下です4

P.S. なぜhelium-cylinder?

Heliumのラッパー、扱いやすくするもので連想していきました。
Heliumは気体・ガスなので、それを扱いやすくするで浮かんだのがボンベ
ガスボンペのような言い回しを調べて、helium-cylinderに決めました。

Heliumの詰まったボンベを思い描いています。
ガスボンベは扱いが容易ですよね。
その比喩で、Pythonの知識を使ってHeliumをより扱いやすくできるんじゃないかと、アイデアを試していきます