4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Selenium等インストール不要のTinySeleniumVBAで起動済みEdgeをExcelから操作する方法

Posted at

SeleniumBasicや、.NET Framework等、ツールをインストールする必要が無く、WebDriverの配置のみでVBAからブラウザを操作可能な「TinySeleniumVBA」を利用して、起動済みEdgeを操作する方法です。
TinySeleniumVBAのREADMEにも記載がありますが、

インストール権限のない人でもすぐにブラウザ自動操作に取り掛かることができます

つまり、業務ツールなど管理者権限で設定を前もってしておかないといけない場合でも、設定(環境整備)無しにブラウザ操作の自動化が可能になります。

準備

上記リポジトリからソースをダウンロードして、展開。以下4ファイルを対象のプロジェクトにインポートします。

  • Capabilities.cls
  • JsonConverter.cls
  • WebDriver.cls
  • WebElement.cls

プロジェクトの参照設定に以下を追加

  • Microsoft Scripting Runtime

対応したWebDriverをダウンロードして、解凍
→ソースの中で、パスを指定するので分かりやすいところに置いておくと良いです

動作確認

Sub TinySeleniumTest()
  Dim driver As New WebDriver
  ' 準備のところで用意し格納した対象のWebDriverを指定
  driver.Edge "hoge\msedgedriver.exe"
  driver.OpenBrowser
  driver.Navigate "https://www.google.co.jp/"
  driver.Shutdown
End Sub

もし、うまく実行できない場合は参照に、「Selenium Type Libraly」が含まれていることが原因かもしれませんので、チェックを外して再度試してみてください
(オブジェクト定義が重複してしまっていることが原因です)

起動済みブラウザにも適用

前回の記事で、remote-debugging-portを利用する方法を記載しました。
今回もそれを用います。
ショートカットを作成して簡単にremote-debugging-portを指定してEdgeを立ちあげられるように準備しておいてください(詳しい説明は前回の記事をご覧ください)

ソースを以下のように修正

Sub TinySeleniumTest()
  Dim driver As New WebDriver
  driver.Edge "hoge\msedgedriver.exe"
  ' 以下4行を追加と修正
  Dim cap As Capabilities
  Set cap = driver.CreateCapabilities()
  cap.SetOption "debuggerAddress", "127.0.0.1:9222"
  driver.OpenBrowser cap

  driver.Navigate "https://www.google.co.jp/"
  driver.Shutdown
End Sub

これで、起動済みのEdgeをTinySeleniumVBAを用いて操作可能になります。
あとは適宜、DOMを取得するなどして良い感じに利用してください。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?