《SeleniumBasic 3.141.0.0 - 在VBA中操作瀏覽器》高級技術之十九:Firefox瀏覽器的安裝和驅動文件的下載


Mozilla Firefox,中文俗稱火狐瀏覽器,使用Gecko引擎。

  • Firefox瀏覽器的下載

地址:http://www.firefox.com.cn/

在其他瀏覽器中打開上述URL,點擊“立即下載”按鈕。

 

 

下載Firefox-latest.exe可執行文件,雙擊並安裝。

 

安裝結束后,默認安裝位置位於:
C:\Program Files\Mozilla Firefox
手工啟動Firefox瀏覽器,點擊菜單“幫助”、“關於Firefox”

 

可以看到版本號是67.0.4(32位)。

 

看清楚版本號以后,就可以搜索與之匹配的驅動文件了。

  • 驅動文件的下載

Firefox瀏覽器的驅動文件是geckodriver.exe,下載地址位於:

https://github.com/mozilla/geckodriver/releases

可以看到最新版是v0.26.0,向下滾動到Assets中,下載與Firefox版本適合的驅動文件。

 

解壓到E:\Selenium\Drivers路徑下。

 

  • 啟動瀏覽器

示例代碼:

 

Private WD As SeleniumBasic.IWebDriver
Sub Baidu()
    On Error GoTo Err1
    Dim Service As SeleniumBasic.FirefoxDriverService
    Dim Options As SeleniumBasic.FirefoxOptions
    Set WD = New SeleniumBasic.IWebDriver
    Set Service = New SeleniumBasic.FirefoxDriverService
    With Service
        .CreateDefaultService driverPath:="E:\Selenium\Drivers"
        .HideCommandPromptWindow = True
    End With
    Set Options = New SeleniumBasic.FirefoxOptions
    With Options
        .BrowserExecutableLocation = "C:\Program Files\Mozilla Firefox\firefox.exe"
    End With
    WD.New_FirefoxDriver 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

Sub Music()
    On Error GoTo Err1
    Dim Service As SeleniumBasic.FirefoxDriverService
    Dim Options As SeleniumBasic.FirefoxOptions
    Dim Actions As SeleniumBasic.Actions
    Dim Utility As SeleniumBasic.Utility
    Dim Keys As SeleniumBasic.Keys
    Dim i As Integer
    Set WD = New SeleniumBasic.IWebDriver
    Set Utility = New SeleniumBasic.Utility
    Set Actions = New SeleniumBasic.Actions
    Set Keys = New SeleniumBasic.Keys
    Set Service = New SeleniumBasic.FirefoxDriverService
    With Service
        .CreateDefaultService driverPath:="E:\Selenium\Drivers"
        .HideCommandPromptWindow = True
    End With
    Set Options = New SeleniumBasic.FirefoxOptions
    With Options
        .BrowserExecutableLocation = "C:\Program Files\Mozilla Firefox\firefox.exe"
    End With
    WD.New_FirefoxDriver Service:=Service, Options:=Options
    WD.URL = "https://music.163.com/#"
    WD.Manage.Timeouts.PageLoad = 59
    Utility.Sleep 3000
    Dim search As SeleniumBasic.IWebElement
    Dim iframe As IWebElement
    Dim items() As SeleniumBasic.IWebElement
    Dim a As SeleniumBasic.IWebElement
    Dim item As SeleniumBasic.IWebElement
    Dim result As Variant
    Dim lockicon As SeleniumBasic.IWebElement
    Dim prv As SeleniumBasic.IWebElement
    Dim play As SeleniumBasic.IWebElement
    Set search = WD.FindElementById("srch")
    If search Is Nothing = False Then
        search.Clear
        Utility.Sleep 1000
        search.SendKeys "周華健"
        Utility.Sleep 1000
        search.SendKeys Keys.Enter
        Utility.Sleep 1000
        Set iframe = WD.FindElementById("g_iframe")
        WD.SwitchTo.Frame iframe
        Set a = WD.FindElementByLinkText("單曲")
        a.Click
        Utility.Sleep 1000
        items = WD.FindElementsByCssSelector("[class='opt hshow']")
        For i = 0 To UBound(items)
            Set item = items(i)
            result = WD.ExecuteScript("arguments[0].scrollIntoView(true);", item)
            Set Actions = New SeleniumBasic.Actions
            Actions.Create WD
            Utility.Sleep 1000
            Actions.MoveToElement(item).Perform
            Utility.Sleep 1000
            item.FindElementByTagName("a").Click
        Next i
        WD.SwitchTo.DefaultContent
        Set lockicon = WD.FindElementByClassName("btn")
        lockicon.Click
        Utility.Sleep 1000
        Dim div As SeleniumBasic.IWebElement
        Dim buttons() As SeleniumBasic.IWebElement
        Set div = WD.FindElementById("g_player").FindElementByClassName("btns")
        buttons = div.FindElementsByTagName("a")
        Utility.Sleep 1000
        buttons(0).Click
        buttons(2).Click
        If buttons(1).GetAttribute("data-action") = "play" Then
            buttons(1).Click
        End If
    End If
    Stop
    WD.Quit
    Exit Sub
Err1:
    Stop
    Resume
End Sub

 

 

 

  • 運行截圖

 

 

 

 


免責聲明!

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



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