《SeleniumBasic 3.141.0.0 - 在VBA中操作瀏覽器》高級技術之十一:Chrome瀏覽器_下載文件到指定的路徑


在Chrome瀏覽器上點擊其他軟件的安裝包,或者超鏈接,通常會彈出一個文件保存對話框,必須手工選擇文件夾和文件名稱才能繼續下去。

在SeleniumBasic中遇到這種情況會把程序堵死。

但是,Chrome瀏覽器的選項設置中,可以設置是否彈出文件保存對話框,以及保存文件的默認路徑(如果不修改設置,默認位置是C:\Users\你的用戶名\DownLoad)。

SeleniumBasic中的ChromeOptions對象,具有AddUserProfilePreference方法,可以添加個人偏好。

Private WD As SeleniumBasic.IWebDriver
Sub Download()
    On Error GoTo Err1
    Dim Service As SeleniumBasic.ChromeDriverService
    Dim Options As SeleniumBasic.ChromeOptions
    Set WD = New SeleniumBasic.IWebDriver
    Set Service = New SeleniumBasic.ChromeDriverService
    With Service
        .CreateDefaultService driverPath:="E:\Selenium\Drivers"
        .HideCommandPromptWindow = True
    End With
    Set Options = New SeleniumBasic.ChromeOptionsWith Options
        .BinaryLocation = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" .AddUserProfilePreference "download.prompt_for_download", False .AddUserProfilePreference "download.default_directory", "D:\Temp"
        Debug.Print .ToString
    End With
    WD.New_ChromeDriver Service:=Service, Options:=Options
    WD.URL = "https://www.cnblogs.com/ryueifu-VBA/p/9482006.html"
    Dim file As SeleniumBasic.IWebElement
    Set file = WD.FindElementByLinkText("TreeviewEditor.rar") If file Is Nothing = False Then
        WD.ExecuteScript "arguments[0].scrollIntoView(true);", file
        file.Click
    End If
    WD.Quit
    Exit Sub
Err1:
    MsgBox Err.Description, vbCritical
End Sub

上述程序執行后,打印個人偏好,可以看到設置參數成功。

{
  "browserName": "chrome",
  "goog:chromeOptions": {
    "binary": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
    "prefs": {
      "download.prompt_for_download": false,
      "download.default_directory": "D:\\Temp"
    }
  }
}

本例的目的是下載一個壓縮包,網址是https://www.cnblogs.com/ryueifu-VBA/p/9482006.html。

啟動瀏覽器后自動導航到這個網址,然后根據超鏈接的文字進行定位,接下來直接Click,可以看到並未彈出保存對話框,而是直接保存到了D:\Temp。

 


免責聲明!

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



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