18

I did the following but came across the error:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

from splinter import Browser

browser = Browser('chrome')

How can I go about resolving the issue using Mac?

Thank you in advance and will be sure to upvote/accept answer!

eyllanesc
  • 235,170
  • 19
  • 170
  • 241
Jo Ko
  • 7,225
  • 15
  • 62
  • 120

3 Answers3

49

The easiest way to resolve this is on a Mac is to:

brew install --cask chromedriver

Splinter and similar frameworks for browser automation rely on external modules being installed and callable in PATH.

Edit: chromedriver migrated from homebrew/core to homebrew/cask

Janosh
  • 3,392
  • 2
  • 27
  • 35
brennan
  • 3,392
  • 24
  • 42
10

brew cask install chromedriver

The current working command to install chromedriver from brew, since the previously accepted answer has been outdated unfortunately.

This then needs to be paired with your selinium code :

chrome_path = r'/usr/local/bin/chromedriver' #path from 'which chromedriver'
driver = webdriver.Chrome(executable_path=chrome_path)

or 

import os 

driver = webdriver.Chrome(executable_path=os.popen('which chromedriver').read().strip())

Note: you may also need to do : brew cask install google-chrome

or

brew install --cask chromedriver

depending on your version of brew.

user2589273
  • 2,379
  • 20
  • 29
0

Follow these three steps and you are all set !!!

  1. Change the permission of the exe file to read/write for the user you are using to execute the file.

  2. Check the version of the driver is same as that of your browser

  3. Also don't give .exe in the python path(just provide upto the chromedriver in the path)

example:

driver = webdriver.Chrome(executable_path="/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/chrome/chromedriver")
Mohnish
  • 1,010
  • 1
  • 12
  • 20