《SeleniumBasic 3.141.0.0 - 在VBA中操作瀏覽器》高級技術之十八:IE瀏覽器與驅動文件的部署


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瀏覽器,重新運行上面的示例程序,應該可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM