问题
I am trying to execute some tests using chromedriver and have tried using the following methods to start chromedriver.
driver = webdriver.Chrome('/usr/local/bin/chromedriver')
and
driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')
and
import os
from selenium import webdriver
chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
But none of these seems to help and the error is : selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.
I have checked multiple times and chromedriver is present in location /usr/local/bin.
Still my scripts are not working. Could any body pls help.
My google-chrome location is : /usr/bin/google-chrome
回答1:
Following the suggestion from https://askubuntu.com/questions/539498/where-does-chromedriver-install-to I was able to make it work like this:
Installed the chromium-chromedriver:
sudo apt-get install chromium-chromedriverAdding the path to the selenium line:
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
Note that this opens Chromium and not Chrome. Hope it was helpful.
回答2:
I have solved the issue in the following way:
Open a terminal and type
whereis chromedriver. In my case, I had the following output:chromedriver: /usr/local/bin/chromedriverCopy that path and edit your Webdriver instance like:
driver = webdriver.Chrome('/usr/local/bin/chromedriver')
That should be enough!
回答3:
The following should normally work:
driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')
Note that in your question there was no preceding '/' in the path.
Additionally, make sure that the chromedriver executable located in /usr/local/bin/ has appropriate file permissions, i.e. that it can be executed:
> chmod 777 /usr/local/bin/chromedriver
回答4:
As the message says: ChromeDriver executable needs to be available in the path.
So is it in the path? What is the output of:
$ cd
$ chromedriver --version
If you don’t see the version, chromedriver is definitively not in the PATH.
I don’t tell webdriver where to find chromedriver otherwise. – I use the Ubuntu package “chromium-chromedriver”, but it drops the binary in /usr/lib/chromium-browser/chromedriver, which is not in my PATH. So I put a soft link in /usr/bin.
回答5:
You need to make sure the standalone ChromeDriver binary is either in your path or available in the webdriver.chrome.driver environment variable and then try to use absolute path to that binary. Below is the code for java -
File chromeDriver = new File("/usr/bin/chromedriver");
System.setProperty("webdriver.chrome.driver", chromeDriver.getAbsolutePath());
driver = new ChromeDriver();
回答6:
Just pass the binary location as argument to it and not just the directory conatining it. So if it lies in /usr/bin directory, then run below command:
driver = webdriver.Chrome("/usr/bin/chromedriver")
This worked for me in ubuntu and adding path to bashrc is not working. Give it a try.
回答7:
hope this will be useful for some who did like me. For my case i left preceding slash in the path did "home/user/chromedriver" instead of "/home/user/chromedriver"
来源:https://stackoverflow.com/questions/22476112/using-chromedriver-with-selenium-python-ubuntu