Несколько дней назад undetected_chromedriver с webdriver_manager работал хорошо для очистки веб-сайтов, но из ниоткуда начал выдавать ошибку:
OSError: [Errno 8] Exec format error:
'/Users/pd/.wdm/drivers/chromedriver/mac64/127.0.6533.72/chromedriver-mac-x64/THIRD_PARTY_NOTICES.chromedriver'
Я предполагаю, что это связано с недавним обновлением webdriver_manager.
Это код:
import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support import expected_conditions as EC
def get_driver():
options = uc.ChromeOptions()
# options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-sim-usage")
options.add_argument("--start-maximized")
options.add_argument('--disable-popup-blocking')
driver = uc.Chrome(driver_executable_path=ChromeDriverManager().install(), options=options, version_main=116)
driver.maximize_window()
return driver
Было бы очень здорово, если бы кто-нибудь мог мне помочь в этом, спасибо.
It is related to the function __get_binary in the driver_cache.py file. webdriver-manager version 4.0.2 added the condition if 'THIRD_PARTY' in f: continue
Это связано с функцией __get_binary в файле driver_cache.py. В webdriver-manager версии 4.0.2 добавлено условие if «THIRD_PARTY» в f: continue
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , добавив дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
Команда ChromeDriverManager().install()
:
Сначала вам нужно удалить папку .wdm
, а затем переустановить webdriver-manager
:
Расположение окон:
r"C:\Users\{user}\.wdm"
Linux/Mac Расположение:
/home/user/.wdm
rm -rf /home/user/.wdm
pip uninstall webdriver-manager
pip install webdriver-manager
Теперь после выполнения ChromeDriverManager().install()
вы должны увидеть только одну папку с исполняемым файлом:
Он проверяет, действительно ли внутри этой папки находится исполняемый файл chromedriver
.
Во-вторых, он исправляет имя файла:
if 'THIRD_PARTY_NOTICES.chromedriver' in chromedriver_path:
chromedriver_path = chromedriver_path.replace('THIRD_PARTY_NOTICES.chromedriver', 'chromedriver')
Этот сработал для меня. Но я удалил только папку 127.0.6533.88, а не всю папку /.wdm.
Большое спасибо за очень хорошие инструкции.
Этот ответ работает хорошо, поскольку Windows
путь .wdm
будет внутри C:\Users\{username}\.wdm
Похожая ветка. Мне удалось найти решение с помощью предложений здесь: stackoverflow.com/questions/78789819/…