自動更新chromedriver vba代碼(通常一個月左右google會更新瀏覽器一次)
Sub seleniumOPEN()
'利用error方式判斷selenium是否異常 若有異常err就不是0 就會進入 updataSelenium 的程序抓取新的chromedrive版本
Do
On Error GoTo 0
On Error Resume Next
Set driver = CreateObject("Selenium.ChromeDriver")
Err = 0
driver.Get "https://www.google.com.tw" '一定要加https:// 不然會出現神奇的異常現象
If Err <> 0 Then
driver.Quit
Set driver = Nothing
Call updataSelenium
End If
Loop Until Err = 0
msgbox "完成"
End Sub
Sub updataSelenium()
'先判斷chromedriver在哪個資料夾
path1 = "C:\Users\" & Environ$("username") & "\AppData\Local\SeleniumBasic\Chromedriver.exe"
path2 = "C:\Program Files\SeleniumBasic\Chromedriver.exe"
If Dir(path1) <> "" Then TempDrvFile = path1
'Kill (TempDrvFile) '假如在錯誤的情況下 找到了檔案 那之後將要更新複製覆蓋 避免跳出複製已存在錯誤警告 所以先刪除掉
If Dir(path2) <> "" Then TempDrvFile = path2
'判斷chrome的版本號
Set objHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0") 'Get chrome version
chrversion = CreateObject("WScript.Shell").RegRead("HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon\version")
dotsarr = Split(chrversion, ".")
leftchrver = dotsarr(0) & dotsarr(1)
'判斷chromedriver版本號
Set oShell = CreateObject("wscript.shell")
errcode = oShell.Exec(path1 & " --version").StdOut.ReadAll
verarr = Split(errcode, " ")
chrdrv = verarr(1)
dotsarr2 = Split(chrdrv, ".")
leftchrdrv = dotsarr2(0) & dotsarr2(1)
If leftchrver = leftchrdrv Then Exit Sub '利用版本號的前兩位判斷是否同版本