IE瀏覽器是Windows系統自帶的瀏覽器,在VBA中一般通過InternetExplorer這個COM對象來操作瀏覽器,使用HTMLDocument解析網頁內容。

SeleniumBasic技術也支持IE瀏覽器。本帖講解一下通過該技術來驅動IE瀏覽器的知識。
- IE瀏覽器驅動文件的下載
在任何一種瀏覽器中打開如下頁面:
https://selenium-release.storage.googleapis.com/index.html

SeleniumBasic的WebDriver.dll的版本是3.141.0.0。所以要打開與WebDriver.dll版本一致的那個文件夾。也就是點擊“3.141”打開。

如果是Windows 32位系統,就下載前3個中的任意一個.zip文件。如果是64位系統,下載包含x64的即可。
把壓縮包解壓到E:\Selenium\Drivers路徑下,可以看到多了一個IEDriverServer.exe的驅動文件,產品版本是3.141.59.0。
- 啟動瀏覽器
VBA中輸入如下代碼
Private WD As SeleniumBasic.IWebDriver Sub Baidu() On Error GoTo Err1 Dim Service As SeleniumBasic.InternetExplorerDriverService Dim Options As SeleniumBasic.InternetExplorerOptions Set WD = New SeleniumBasic.IWebDriver Set Service = New SeleniumBasic.InternetExplorerDriverService With Service .CreateDefaultService driverPath:="E:\Selenium\Drivers" .HideCommandPromptWindow = True End With Set Options = New SeleniumBasic.InternetExplorerOptions With Options .IntroduceInstabilityByIgnoringProtectedModeSettings = True End With WD.New_InternetExplorerDriver Service:=Service, Options:=Options WD.URL = "https://www.baidu.com" Dim form As SeleniumBasic.IWebElement Dim keyword As SeleniumBasic.IWebElement Dim button As SeleniumBasic.IWebElement Set form = WD.FindElementById("form") Set keyword = form.FindElementById("kw") keyword.Clear keyword.SendKeys "好看視頻" Set button = form.FindElementById("su") button.Click Debug.Print WD.Title, WD.URL Debug.Print WD.PageSource MsgBox "下面退出瀏覽器。" WD.Quit Exit Sub Err1: MsgBox Err.Description, vbCritical End Sub
運行,可以看到IE瀏覽器打開了百度。

- 異常對應
每個人電腦上的IE的設置不一定都相同,因此有些電腦運行上面的實例程序可能無法正常啟動瀏覽器。這種情況需要事先設置瀏覽器。
第1步:在瀏覽器右上角有個“設置”按鈕,點擊展開菜單,選擇“Internet選項”。

在“安全”選項卡中,依次選擇“Internet”、本地Intranet、受信任的站點、受限制的站點。
把“啟用保護模式”前面的復選框全部去掉勾選(或者全部勾選上)。

第2步:修改縮放比例為100%

退出IE瀏覽器,重新運行上面的示例程序,應該可以了。
