Следующее относится к моменту, когда я настроил два профиля: один с включенным javascript, а другой без. Если у вас уже есть расширение, установленное в профиле, оно должно загружаться при прохождении правильного пути. По своему опыту я нашел более надежным создать профиль и запустить Chrome через Selenium, а затем добавить расширение. Например, с помощью приведенного ниже сценария я открыл магазин приложений Chrome для одного из своих профилей и вручную добавил расширение Usersnap. Теперь, когда я снова запускаю этот профиль, он присутствует.
Примечание: я настроил профили, запустив селен хром и введя chrome://version/
, затем скопировав Profile Path
для повторного использования.
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:\Users\User\AppData\Local\Google\Chrome\User Data\Profile 1"
Const JS_PROFILE As String = "C:\Users\User\AppData\Local\Google\Chrome\User Data\Default"
Set d = New ChromeDriver
With d
.SetProfile JS_PROFILE, True 'NO_JS_PROFILE, True
.get URL
Stop
.Quit
End With
End Sub
Эти два примера взяты непосредственно от самого автора и доступны на 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:\Users\florent\Downloads\Personal-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:\Users\florent\Downloads\firebug-2.0.12-fx.xpi"
driver.SetPreference "extensions.firebug.showFirstRunPage", False
driver.Get "https://www.google.co.uk"
driver.Quit
End Sub
Выше показаны 2 способа загрузки с расширением (Load a Chrome Extension
путем предоставления аргумента пути, создания Custom Chrome Profile
и передачи пути к нему. Подробнее здесь .
Порядок настройки временного профиля (разговор между @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:\Users\User\AppData\Local\Temp\Selenium\scoped_dir6268_2742\Default"
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
'------------------------------------------------