pycharm-selenium-python: невозможно запустить службу chromedriver - [WinError 193]% 1 не является допустимым приложением Win32 - PullRequest
0 голосов
/ 26 октября 2018

Этот вопрос не является дубликатом ошибка при использовании хроматографа селена в Windows 7 64 бит , поскольку я пробовал все решения, упомянутые там.

В каталоге env\lib\site-packages\selenium\webdriver\common\service.py, учитывая следующий код в function start

cmd = [self.path]
            cmd.extend(self.command_line_args())
            self.process = subprocess.Popen(cmd, env=self.env,
                                            close_fds=platform.system() != 'Windows',
                                            stdout=self.log_file, stderr=self.log_file)

Значение для cmd: <class 'list'>: ['chromedriver', '--port=58808']

В функции ../AppData/Local/Programs/Python/Python35/Lib/subprocess.py __init__

self._execute_child(args, executable, preexec_fn, close_fds,
                                pass_fds, cwd, env,
                                startupinfo, creationflags, shell,
                                p2cread, p2cwrite,
                                c2pread, c2pwrite,
                                errread, errwrite,
                                restore_signals, start_new_session)

args - единственный аргумент, передаваемый со значением <class 'list'>: ['chromedriver', '--port=58999']

Но возникает исключение: [WinError 193] %1 is not a valid Win32 application

Это предотвращает запуск службы chromedriver.

Итак, я изменил args на absolute_path_to_chrome_driver\\chromedriver:

self._execute_child(args, 'absolute_path_to_chrome_driver\\chromedriver', preexec_fn, close_fds,
                                    pass_fds, cwd, env,
                                    startupinfo, creationflags, shell,
                                    p2cread, p2cwrite,
                                    c2pread, c2pwrite,
                                    errread, errwrite,
                                    restore_signals, start_new_session)

Но все равно возникает то же исключение: [WinError 193] %1 is not a valid Win32 application

Это предотвращает запуск хромедривера.

Я даже скачал последнюю версию chromedriver, но ChromeDriver 2.43 (https://chromedriver.storage.googleapis.com/2.43/chromedriver_win32.zip), но ошибка сохраняется.

Есть какие-нибудь подсказки на этом?

1 Ответ

0 голосов
/ 31 октября 2018

Хорошо, поэтому chromedriver.exe необходимо поместить в папку ..\env\Scripts, чтобы это работало - указание любой записи системного пути не сработало.

Когда я размещаю здесь что-либо, я могу напрямую получить к нему доступ по имени процесса. Но я не могу использовать указанный путь в системных переменных окружения (или, может быть, я могу, но не знаю, как :().

...