Проблема с подключением расширения к Selenium

Пытаюсь подключить к Selrnium распакованное расширение от 2captcha

chrome_options = Options()
chrome_options.add_extension(r"C:\Users\...\captcha")

driver = webdriver.Chrome(options=chrome_options)

Но получаю ошибку [Errno 13] Permission denied. Выдал полные права на папку всем пользователям, запускал скрипт и через пайчарм с админ правами и через консоль с админкой, везде одна ошибка. Папка эта существует и путь указан верно (проверял), также пробовал путь писать со всеми возможными слешами, но картины не поменяло.

Если использую

chrome_options.add_extension(r"C:\Users\...\captcha.сrx")

или

chrome_options.add_argument(r"--load-extension=C:\Users\...\captcha")

то расширение не открывается


Ответы (1 шт):

Автор решения: zrx

У тебя смешано два разных способа:

  1. add_extension() - работает только с файлами .crx или .zip. Передать туда папку нельзя, поэтому ты получаешь Permission denied
  2. --load-extension= — работает только с распакованным расширением (папкой).

Как исправить?

  1. После использования второго варианта
    chrome_options.add_argument(r"--load-extension=C:\...\captcha"
    нужно сначала понять, точно ли установилось это расширение.

    Вот как это можно сделать:
# Встроенная переменная у расширений
# Если расширение подгружено - этот вызов вернёт его ID (например, aapocclcgogkmnckokdopfmhonfmgoek)
# Если расширение не подгружено - вернёт None
print(driver.execute_script("return chrome.runtime.id"))
  1. Если расширение всё-таки не установилось, то нужно проверить, что при использовании chrome_options.add_argument() ты передаёшь путь до папки, внутри которой лежит manifest.json. Иногда этот файл может находиться внутри подпапки - в таком случае расширение не подгрузится.
→ Ссылка