AutoItでSelenium (basic)を使ってChromeを操作する

selenium basicを使ってAutoItからChromeを操作する Chrome

AutoItにはWebDriver UDFがありますが、Seleniumを使うこともできます。Seleniumを使う場合はググるとSelenium+Pythonばかり出てきますが、Selenium VBAで検索するとSelenium BasicというものをインストールすればSelenium経由、WebDriverを通してブラウザ操作できます。
VBAで使える=AutoItでも使える と筆者は認識しているので早速やってみます。

スポンサーリンク

1. Selenium Basicのダウンロード

下記URL Download Relase pageリンクからexeをダウンロードしインストールします。最新版は2016年3月3日リリースのv.2.0.9.0のようです。

Seleniumbasic
Seleniumbasic : A Selenium based browser automation framework for VB.Net, VBA and VBScript

2. インストールはNext押していけばOK

ダウンロードしたexeをダブルクリックしてインストールします。
今回はOperaとか使わないのでチェック外しました。
ちなみに最後のFirefox Addonインストールは壊れていて追加できないと言われます。

Nextで次へ
AcceptしてNextで次へ
いらないのはチェックを外す。Nextで次へ
Nextで次へ
これやってみましたが、古いせいか2019年12月時点でのFirefoxには入りません
こんなメッセージがFirefoxに出てきます

3. インストールされるディレクトリ

ディレクトリはC:\Program Filesではなく、C:\Users\(あなた)\AppData\Local\SeleniumBasicです。

3.1 AutoItのExamplesも入っている

Examples\AutoIt\ListLinksToExcel.au3 ファイルがあります。お、AutoItでも使えるようですね。ただ、実行してもうまく動きませんでした・・(なぜ?)

4. WebDriverを最新に更新する

インストールされたディレクトリにはchromedriver.exe、edgedriver.exeなどが入っていますが、当然古いのでお使いのブラウザに合わせてダウンロードし上書きしておきましょう。
ChromeDriverは下記からお使いのChromeバージョンにあったものを。

chrome://version/
Downloads - ChromeDriver - WebDriver for Chrome
WebDriver for Chrome

5. スクリプトを書いてみる

他のと同じで簡単にできます。ObjCreate(“Selenium.ChromeDriver”)でオブジェクト作成し、Get()でページ表示。FindELementByXPathとかで要素取得し、命令できます。Selenium VBAで検索するとそこそこ出てきますね。
今回は本サイトのHomeをGet()で表示し、メニューの「お問い合わせ」要素オブジェクトをXpathで取得しクリックすることでお問い合わせページに移動です。

$driver = ObjCreate("Selenium.ChromeDriver")
$driver.Get("https://cfautog.tokyo/")
Sleep(1000)
;お問い合わせ文字のXPathをコピーし貼り付け
$obj = $driver.FindElementByXPath('//*[@id="menu-item-89"]/a/div/div[1]')
;取得した要素オブジェクトに対してクリック
$obj.Click
Sleep(2000)

$driver.Quit

6. 関数などのヘルプはSelenium.chm

インストールされたディレクトリにSelenium.chmがあるので関数などはそこを見ればOKかと。

Selenium BasicのヘルプファイルはSelenium.chm
Selenium Basicのヘルプ、Selenium.chmの中身

7. 使ってみた感想はWebDriver UDFのほうがいい

Seleniumの記述に慣れている人はいいでしょう。
しかし最大の難点は使うPCにSeleniumBasicを入れなければならない点
そしてwebdriverの更新はSeleniumBasicインストールフォルダ内のchromedriver.exeを更新しなければならないこと。どこか自分のディレクトリ指定出来ればいいんですが。
WebDriver UDFだと新たにインストールする必要がないのが良いです。

ただ、書き方はWebDriver UDFに比べて凄くシンプルです。Selenium BasicをPCに入れてもいいならSeleniumを選択するほうがいいかもです。
下記はWebDriver UDFを使った時の書き方です。

コメント

タイトルとURLをコピーしました