Есть ли способ добавить chrome-расширение в веб-драйвер PuppeteerSharp?

Как я могу загрузить расширение Chrome для драйвера PuppeteerSharp, аналогично опции Selenium:

ChromeOptions options = new ChromeOptions();
options.AddExtension(@"C:\a\path\to\file.zip");

1 ответ

На основе строки 43 файла LanchOptions.cs вы можете указать аргументы процесса запуска.

Теперь, соединяя это с собственным JavaScript (используя флаг --load-extension), результат должен выглядеть примерно так:

var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
    Args = new string[1] { "--load-extension=/Path/To/Extension/Folder" }
});

Обратите внимание: я поставил путь к папке, а не.zip, как у вас в образце. Если вы хотите загрузить несколько расширений, просто разделите пути, используя запятую.

Вот полный список возможных аргументов, которые можно передать в Chromium.

В соответствии с этим вопросом у меня работает следующий фрагмент кода:

var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
    Args = new string[1] 
    {
       "--disable-extensions-except=${pathToExtension}",
       "--load-extension=${pathToExtension}"
    }
});

Иногда он не может загрузить некоторые расширения, когда они упакованы (файлы *.crx или *.zip). Тогда распаковка этого расширения может помочь.

Другие вопросы по тегам