The following is from when I set up two profiles: one with javascript enabled and the other without. If you have already got the extension installed in the profile it should load when you pass the correct path. In my experience I found it more reliable to create the profile and launch Chrome via Selenium and then add the extension. For example, with the script below I opened Chrome app store for one of my profiles and manually added Usersnap extension. Now, when I launch this profile again it is present.
Note: I set up profiles by launching selenium chrome and entering chrome://version/
then copying the Profile Path
to re-use.
Option Explicit
Public Sub AddExtension()
Dim d As WebDriver
Const URL = "https://chrome.google.com/webstore/search/Usersnap"
Const NO_JS_PROFILE As String = "C:UsersUserAppDataLocalGoogleChromeUser DataProfile 1"
Const JS_PROFILE As String = "C:UsersUserAppDataLocalGoogleChromeUser DataDefault"
Set d = New ChromeDriver
With d
.SetProfile JS_PROFILE, True 'NO_JS_PROFILE, True
.get URL
Stop
.Quit
End With
End Sub
These two examples are direct from the author himself and available on GitHub
Private Sub Use_Chrome_With_Extension()
' To download an extension:
' http://chrome-extension-downloader.com
' To manage the extension preferences:
' Developper Tools > Resources > Local Storage > chrome-extension://...
Dim driver As New ChromeDriver
driver.AddExtension "C:UsersflorentDownloadsPersonal-Blocklist-(by-Google)_v2.6.1.crx"
driver.SetPreference "plugins.plugins_disabled", Array("Adobe Flash Player")
driver.Get "chrome-extension://nolijncfnkgaikbjbdaogikpmpbdcdef/manager.html"
driver.ExecuteScript "localStorage.setItem('blocklist', '[""wikipedia.org""]');"
driver.Get "https://www.google.co.uk"
driver.Quit
End Sub
Private Sub Use_Firefox_With_Extension()
' To download an extension, use a browser other than Firefox
Dim driver As New FirefoxDriver
driver.AddExtension "C:UsersflorentDownloadsfirebug-2.0.12-fx.xpi"
driver.SetPreference "extensions.firebug.showFirstRunPage", False
driver.Get "https://www.google.co.uk"
driver.Quit
End Sub
The above shows the 2 ways to load with extension (by Load a Chrome Extension
by providing a path argument, creating a Custom Chrome Profile
and passing the path to that. More info here.
Walk through of setting a temp profile (conversation between @qharr & @YasserKhalil)
'Run This Procedure 'GetInfo' First
'----------------------------------
Sub GetInfo()
Dim d As WebDriver
Set d = New ChromeDriver
Const URL = "https://pcsupport.lenovo.com/"
With d
.Start "Chrome"
.get URL
Stop
End With
End Sub
'In The Browser Replace The Current URL With chrome://version/ And Press Enter
'Make A Note Of The Profile Path And Use It In This Procedure 'AddExtension'
'------------------------------------------------------------------------------
Sub AddExtension()
Dim d As WebDriver
Const MY_PROFILE As String =
"C:UsersUserAppDataLocalTempSeleniumscoped_dir6268_2742Default"
Set d = New ChromeDriver
Const URL = "https://pcsupport.lenovo.com/"
With d
.SetProfile MY_PROFILE, True
.get URL
Stop
.Quit
End With
End Sub
'Now Navigate And Install Your Extension Manually
'------------------------------------------------
'Relaunch browser and extension should be present
'------------------------------------------------
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…