Ошибка "OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]" обычно возникает, когда OpenSSL пытается загрузить или обработать файл в формате PEM (Privacy Enhanced Mail), который является одним из форматов для сертификатов и ключей, и не находит ожидаемого начала файла.
Это может случиться по нескольким причинам:
Файл сертификата отсутствует или не может быть прочитан из-за проблем с правами доступа.
Файл сертификата поврежден или не в формате PEM.
Путь к файлу сертификата неверен или не корректен.
В контексте seleniumwire, это может быть связано с настройкой прокси-сервера, который используется seleniumwire для перехвата HTTP(S) запросов.
Seleniumwire создаёт самоподписанные сертификаты для HTTPS-сайтов на лету, но для этого ему нужен корневой сертификат. Если по какой-то причине этот корневой сертификат не создаётся, не сохраняется или не читается корректно, это может вызвать ошибку OpenSSL.
Без дополнительной информации трудно сказать точную причину ошибки в вашем случае. Но вот несколько вещей, которые вы можете попробовать:
Убедитесь, что у вас установлена последняя версия seleniumwire.
Убедитесь, что у вас есть необходимые разрешения на создание и чтение файлов в директории, где работает ваш скрипт.
Попробуйте явно задать директорию для хранения сертификатов seleniumwire, используя опцию seleniumwire_options при создании драйвера, например:
from seleniumwire import webdriver
from webdriver_manager.chrome import ChromeDriverManager
seleniumwire_options = {
'ca_bundle_cert': '/path/to/your/directory'
}
driver = webdriver.Chrome(ChromeDriverManager().install(), seleniumwire_options=seleniumwire_options)
В этом примере /path/to/your/directory - это путь к директории, где seleniumwire будет хранить сертификаты. Убедитесь, что указанный путь существует и доступен для записи.