Проблема с подключением расширения к 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
→ Ссылка
У тебя смешано два разных способа:
add_extension()
- работает только с файлами.crx
или.zip
. Передать туда папку нельзя, поэтому ты получаешьPermission denied
--load-extension=
— работает только с распакованным расширением (папкой).
Как исправить?
- После использования второго варианта
chrome_options.add_argument(r"--load-extension=C:\...\captcha"
нужно сначала понять, точно ли установилось это расширение.
Вот как это можно сделать:
# Встроенная переменная у расширений
# Если расширение подгружено - этот вызов вернёт его ID (например, aapocclcgogkmnckokdopfmhonfmgoek)
# Если расширение не подгружено - вернёт None
print(driver.execute_script("return chrome.runtime.id"))
- Если расширение всё-таки не установилось, то нужно проверить, что при использовании
chrome_options.add_argument()
ты передаёшь путь до папки, внутри которой лежитmanifest.json
. Иногда этот файл может находиться внутри подпапки - в таком случае расширение не подгрузится.