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のようです。
2. インストールはNext押していけばOK
ダウンロードしたexeをダブルクリックしてインストールします。
今回はOperaとか使わないのでチェック外しました。
ちなみに最後のFirefox Addonインストールは壊れていて追加できないと言われます。






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/
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かと。


7. 使ってみた感想はWebDriver UDFのほうがいい
Seleniumの記述に慣れている人はいいでしょう。
しかし最大の難点は使うPCにSeleniumBasicを入れなければならない点。
そしてwebdriverの更新はSeleniumBasicインストールフォルダ内のchromedriver.exeを更新しなければならないこと。どこか自分のディレクトリ指定出来ればいいんですが。
WebDriver UDFだと新たにインストールする必要がないのが良いです。
ただ、書き方はWebDriver UDFに比べて凄くシンプルです。Selenium BasicをPCに入れてもいいならSeleniumを選択するほうがいいかもです。
下記はWebDriver UDFを使った時の書き方です。
コメント