Как открыть хром с расширением с помощью селена VBA - PullRequest
0 голосов
/ 17 ноября 2018

Я очень новичок в программировании, так что я пытаюсь сделать это открыть Chrome с расширением.После некоторого поиска я нашел эту ссылку: https://seleniumjava.com/2016/05/22/start-the-chrome-browser-with-extensions/amp/

Однако там говорится о Java, которую я понятия не имею ... Поэтому я хочу включить тот же метод с VBA ... Заранее спасибо ..

1 Ответ

0 голосов
/ 17 ноября 2018

Следующее относится к моменту, когда я настроил два профиля: один с включенным 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
'------------------------------------------------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...