はじめに
ときは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として公開した次第です。
現在サポートしているのはデコレータだけですし、ChromeとFirefoxとで作り込み具合が違うのですが、ちょっとずつ積み上げていきます(もちろんドキュメントもね)
直近の楽しみはhayasakaの進化ですね3。
どのブラウザを使うかをデコレータで指定できると、ブラウザ操作の実装は同じでデコレータを変えるだけで使うブラウザを切り替えられるんですよ!🙌
新しいhayasakaを近日中にリリースできそうで、ワクワク!
終わりに
Heliumをラップしたライブラリ helium-cylinder を、2021年のお蔵入りの状態から一転、公開しました。
もう少し整備が必要なので今の段階では「お試しください」とは言えません。
整備(と進化)をお楽しみに!
画像の元のスライドは以下です4。
P.S. なぜhelium-cylinder?
Heliumのラッパー、扱いやすくするもので連想していきました。
Heliumは気体・ガスなので、それを扱いやすくするで浮かんだのがボンベ。
ガスボンペのような言い回しを調べて、helium-cylinderに決めました。
Heliumの詰まったボンベを思い描いています。
ガスボンベは扱いが容易ですよね。
その比喩で、Pythonの知識を使ってHeliumをより扱いやすくできるんじゃないかと、アイデアを試していきます
- PyCon JP Blog: PyCon JP 2021 座長決定↩
- 『アイの歌声を聴かせて』との出会いも大きかったですね↩
- ↩
- LT登壇報告:2021年の夏も、予定していた全公演を駆け抜けました!🎤⚡️ - nikkie-ftnextの日記 でも取り上げました↩