

**現象**  
VSCodeで開いたJupyter Notebookで下記のPythonのコードを実行すると、エラーが表示されてFirefoxが起動できません。

[code]

    from selenium import geckodriver
    
    ImportError                               Traceback (most recent call last)
    /tmp/ipykernel_3513/2951967038.py in <module>
    ----> 1 from selenium import geckodriver
    
    ImportError: cannot import name 'geckodriver' from 'selenium' (/home/yusuke/anaconda3/envs/dev/lib/python3.9/site-packages/selenium/__init__.py)
    
    from time import sleep
    browser = geckodriver.Firefox()
    
[/code]

**期待値**  
Firefoxを起動したいです。

**再現手順**

  1. Ubuntuのホームディレクトリにanacondaをインストールする。
  2. VSCodeをインストールする。
  3. VSCodeにPythonの拡張機能とJupyter Notebookの拡張機能をインストールする。
  4. Jupyter Notebookのカーネルを`~/anaconda3/envs/dev/bin/python`に設定する。
  5. Jupyter Notebookで`!conda install geckodriver`を実行し、geckodriverのPATHを通すためのShell Scriptを、.bashrcに追記する。
  6. 「現象」にあるPythonのコードを実行する。

**再現手順（追記）**  
7\. geckodriverをアンインストールする。  
8\. Linux版Google Chromeのバージョン99をインストールする。  
9\. ChromeDriverのバージョン99をインストールする。  
10\. VSCodeで開いたJupyter Notebookで下記のPythonのコードを実行する。  
コードの下にエラーも追記してます。

[code]

    from selenium import webdriver
    from time import sleep
    browser = webdriver.Firefox()
    ---------------------------------------------------------------------------
    FileNotFoundError                         Traceback (most recent call last)
    ~/anaconda3/envs/dev/lib/python3.9/site-packages/selenium/webdriver/common/service.py in start(self)
         71             cmd.extend(self.command_line_args())
    ---> 72             self.process = subprocess.Popen(cmd, env=self.env,
         73                                             close_fds=platform.system() != 'Windows',
    
    ~/anaconda3/envs/dev/lib/python3.9/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, user, group, extra_groups, encoding, errors, text, umask)
        950 
    --> 951             self._execute_child(args, executable, preexec_fn, close_fds,
        952                                 pass_fds, cwd, env,
    
    ~/anaconda3/envs/dev/lib/python3.9/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, gid, gids, uid, umask, start_new_session)
       1820                         err_msg = os.strerror(errno_num)
    -> 1821                     raise child_exception_type(errno_num, err_msg, err_filename)
       1822                 raise child_exception_type(err_msg)
    
    FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'
    
    During handling of the above exception, another exception occurred:
    
    WebDriverException                        Traceback (most recent call last)
    /tmp/ipykernel_3513/4270241205.py in <module>
    ----> 1 browser = webdriver.Firefox()
    
    ~/anaconda3/envs/dev/lib/python3.9/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())
    
    ~/anaconda3/envs/dev/lib/python3.9/site-packages/selenium/webdriver/common/service.py in start(self)
         79         except OSError as err:
         80             if err.errno == errno.ENOENT:
    ---> 81                 raise WebDriverException(
         82                     "'%s' executable needs to be in PATH. %s" % (
         83                         os.path.basename(self.path), self.start_error_message)
    
    WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 
    
[/code]


CC BY-SA 4.0
2022-03-12T18:15:35.037
86812
2022-11-29T12:06:15.703
2022-03-14T00:30:40.300
3060
36906
question
python selenium selenium-webdriver
Selenium を使って Firefox を起動したい


**解決手順**

  1. `geckodriver`を`/usr/local/bin/`にインストール。
  2. `~/.bashrc`に`geckodriver`のPATHを通す設定を記述する。以下のように記述する。

[code]

    PATH="$PATH":/usr/local/bin/geckodriver
    
[/code]

  3. `chromedriver` を`/usr/local/bin/`にインストール。
  4. `~/.bashrc`に`chromedriver`のPATHを通す設定を記述する。以下のように記述する。

[code]

    PATH="$PATH":/usr/local/bin/chromedriver
    
[/code]

  5. 下記のコードを実行する。  
「現象」に記述したPythonのコードの`geckodriver`を`webdriver`に書き換えること！

[code]

    from selenium import webdriver
    from time import sleep
    browser = webdriver.Firefox()
    
[/code]


CC BY-SA 4.0
2022-03-13T12:01:04.203
86817
2022-03-13T12:01:04.203
36906
86812
answer