Firefox веб-драйвер в селене - PullRequest
0 голосов
/ 04 августа 2020

Я использую блокнот JupyterLab. Я запустил следующий код:

from selenium import webdriver
driver = webdriver.Firefox()

Выдает длинную ошибку:

---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
~/.local/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self)
     75                                             stderr=self.log_file,
---> 76                                             stdin=PIPE)
     77         except TypeError:

/opt/anaconda/envs/hublab/lib/python3.7/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors, text)
    799                                 errread, errwrite,
--> 800                                 restore_signals, start_new_session)
    801         except:

/opt/anaconda/envs/hublab/lib/python3.7/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
   1550                             err_msg += ': ' + repr(err_filename)
-> 1551                     raise child_exception_type(errno_num, err_msg, err_filename)
   1552                 raise child_exception_type(err_msg)

PermissionError: [Errno 13] Permission denied: 'geckodriver'

During handling of the above exception, another exception occurred:

WebDriverException                        Traceback (most recent call last)
<ipython-input-85-a807687b0e15> in <module>
----> 1 driver = webdriver.Firefox()

~/.local/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py in __init__(self, firefox_profile, firefox_binary, timeout, capabilities, proxy, executable_path, options, service_log_path, firefox_options, service_args, desired_capabilities, log_path, keep_alive)
    162                 service_args=service_args,
    163                 log_path=service_log_path)
--> 164             self.service.start()
    165 
    166             capabilities.update(options.to_capabilities())

~/.local/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self)
     86                 raise WebDriverException(
     87                     "'%s' executable may have wrong permissions. %s" % (
---> 88                         os.path.basename(self.path), self.start_error_message)
     89                 )
     90             else:

WebDriverException: Message: 'geckodriver' executable may have wrong permissions. 

Что не так с моим кодом? Я изменил разрешение geckodriver на chmod + x (я нашел этот совет где-то на форуме).

1 Ответ

0 голосов
/ 04 августа 2020

Судя по сообщению об исключении:

WebDriverException: Сообщение: исполняемый файл 'geckodriver' может иметь неправильные разрешения.

The geckodriver файл, используемый для создания окна браузера, не имеет разрешений на выполнение файла. Предполагая, что вы используете MacOS или Linux:

chmod +x /path/to/geckodriver

должны помочь.

...