👁️‍🗨️

RustからMSEdgeDriverを操作するサンプル

に公開

こんにちは あいおんです。

RustからMSEdgeDriverを操作するサンプルを作ったので公開します。

背景

JTCをはじめ、社内だとChromeではなく、Edgeを使っているケースもあるんじゃないかなと思います。

そんな会社向けの記事です。(ただし、そんな会社がRustを使えるようになっているかというのは…)

また、Pythonとかでやればいいじゃん、というのはごもっともです。(が、いいんです。Rustでやりたかったんです。)

実装

作ったものは以下です。

https://github.com/aion0721/Rust-Msedgedriver-sample/tree/main

前提

msedgedriver.exeは事前にダウンロードしてプロジェクトの直下に置いていてください。
(ご存じだと思いますが、自分の環境と一致していないといけないので、そこは注意です)

https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver

簡単な解説

解説するまでもないですが、、、以下処理の流れです。

  1. l7:msedgeDriverのパスを指定する。
  2. l10:msedgedriverを起動する。
  3. l19:WebDriverとして起動する。
  4. l22以降:WebDriverを操作。(Googleのページアクセスしてbody部を取得しているだけ)
  5. l33:ブラウザを閉じる
  6. l38:msedgeDriverを終了する。

いまいちポイント

  • 本当はmsedgedriverを起動したタイミングでプロセスIDを取得して、そいつを作業終了時に終了するということをしないといけないんですが、面倒だったので全部強制終了。(ゴリラか?)
  • msedgedriverのダウンロード処理は自動化できるはず(SeleniumManagerでできるらしい)

活用ケース

  • Rustからブラウザを自動操作したいケースですね。
    • 今思っているのは、Tauriからできないかなぁと
      • でもよく考えたらTauri自体がブラウザ持ってるはずだから、driverとかなくてもできるんじゃね?と思ってきた

おわり

おわりでーす

今回はLLM使って15分ぐらいで書きました。
(やはり便利ですね。)

Discussion