我正在使用selenium和python,并从这个网站下载了我的Windows计算机的chromedriver:http://chromedriver.storage.googleapis.com/index.html?path=2.15/
下载zip文件后,我将zip文件解压缩到我的下载文件夹。然后我将可执行二进制文件(C:\ Users \ michael \ Downloads \ chromedriver_win32)的路径放入环境变量"路径"。
但是,当我运行以下代码时:
// Maintain a variable that holds the current value
var inputElement = document.getElementById("inputAdd_page"),
totalCount = 0;
debugger;
inputElement.addEventListener('blur', function() {
var count = this.value;
// Gaurd condition
// Only if it is a number
if(count && !isNaN(count)) {
fragment = document.createDocumentFragment();
for (var j = 0; j < count; ++j) {
div = document.createElement('div');
button = document.createElement('button');
button.className = "btn";
button.setAttribute('id', ['pag_navg' + totalCount + j]);
button.innerHTML=[1 + j];
div.className = "page";
div.setAttribute('id', ['page' + totalCount + j]);
div.style.position="absolute";
fragment.appendChild(div);
fragment.appendChild(button);
totalCount++;
}
document.body.appendChild(fragment);
}
});
...我一直收到以下错误消息:
from selenium import webdriver
driver = webdriver.Chrome()
但是 - 如上所述 - 可执行文件是路径中的(!)......这里发生了什么?
答案 0 :(得分:108)
如果你打开一个cmd并键入chromedriver
(假设你的chromedriver可执行文件仍然这样命名)并按Enter键,你可以测试它是否真的在PATH中。如果出现Starting ChromeDriver 2.15.322448
,则会正确设置PATH,并且还会出现其他问题。
或者你可以像这样使用chromedriver的直接路径:
driver = webdriver.Chrome('/path/to/chromedriver')
所以在你的具体案例中:
driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
答案 1 :(得分:27)
我看到讨论仍在讨论通过手动下载二进制文件和配置路径来设置chromedriver的旧方法。
这可以使用webdriver-manager
自动完成pip install webdriver-manager
现在问题中的上面的代码将在下面的更改中简单地工作,
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
同样可以用来设置Firefox,Edge和二进制文件
答案 2 :(得分:9)
对于原始字符串,我们必须添加路径字符串,以字符串前面的字母r
开头。我测试了这种方式,它确实有效。
driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
答案 3 :(得分:8)
与pycharm社区版相同的情况,因此,对于cmd,您必须重新启动ide才能重新加载路径变量。重新启动你的ide,应该没问题。
答案 4 :(得分:6)
对于Linux和OSX
第1步:下载chromedriver
# You can find more recent/older versions at http://chromedriver.storage.googleapis.com/
# Also make sure to pick the right driver, based on your Operating System
wget http://chromedriver.storage.googleapis.com/81.0.4044.69/chromedriver_mac64.zip
对于debian:wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
第2步:将chromedriver添加到/usr/local/bin
unzip chromedriver_mac64.zip
sudo mv chromedriver /usr/local/bin
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod +x /usr/local/bin/chromedriver
您现在应该可以运行
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://localhost:8000')
没有任何问题
答案 5 :(得分:3)
最好的肯定方法是在这里
下载并解压缩chromedriver并将chromedriver.exe放入C:\ Python27 \ Scripts中,然后您无需提供驱动程序的路径,只需
driver= webdriver.Chrome()
您无需添加路径或其他任何内容
答案 6 :(得分:2)
当你解压缩chromedriver时,请指定一个确切的位置,以便以后跟踪它。下面,您将获得适用于您的操作系统的正确的chromedriver,然后将其解压缩到一个确切的位置,以后可以在您的代码中作为参数提供。
wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip
unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/
答案 7 :(得分:2)
CSS
答案 8 :(得分:1)
如果您正在使用机器人框架RIDE。然后,您可以从其官方网站下载Chromedriver.exe
并将此.exe文件保存在C:\Python27\Scripts
目录中。现在提到这个路径作为你的环境变量,例如。 C:\Python27\Scripts\chromedriver.exe
。
重新启动计算机并再次运行相同的测试用例。你不会再遇到这个问题了。
答案 9 :(得分:1)
为此主题的未来读者提供一些额外的输入/说明, 避免修补PATH环境。 Windows级别的变量并重新启动Windows系统: (适用于Chrome的https://stackoverflow.com/a/49851498/9083077的答案副本):
(1)下载chromedriver(如前面这个帖子中所述)并将(解压缩的)chromedriver.exe放在X:\ Folder \ of \ your \ choice
(2)Python代码示例:
import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';
from selenium import webdriver;
browser = webdriver.Chrome();
browser.get('http://localhost:8000')
assert 'Django' in browser.title
注意: (1)示例代码(在引用的答案中)可能需要大约5秒钟才能打开指定URL的Firefox浏览器。 (2)如果没有服务器已经在指定的url上运行或者服务一个标题包含字符串'Django'的页面,python控制台将显示以下错误: 在browser.title中声明'Django' 的AssertionError
答案 10 :(得分:0)
当我下载chromedriver.exe时,我只是将其移动到PATH文件夹C:\ Windows \ System32 \ chromedriver.exe中,却遇到了完全相同的问题。
对我来说,解决方案是只更改PATH中的文件夹,所以我将其移到了PATH中也位于Pycharm Community bin文件夹中。 例如:
答案 11 :(得分:0)
正如 Aphid 在他的 comment 中提到的,如果您想手动执行此操作,则必须仅包含存储网络驱动程序的目录,不包含可执行文件:
正确:
PATH=$PATH:/path/to/webdriver/folder
错误:
PATH=$PATH:/path/to/webdriver/chromedriver.exe
答案 12 :(得分:0)
此问题与运行机器人测试框架和Chrome 77的Mac Mojave一起解决了。感谢@Navarasu将我指向正确的轨道。
$ pip install webdriver-manager --user # install webdriver-manager lib for python
$ python # open python prompt
接下来,在python提示符下:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
# ctrl+d to exit
这会导致以下错误:
Checking for mac64 chromedriver:xx.x.xxxx.xx in cache
There is no cached driver. Downloading new one...
Trying to download new driver from http://chromedriver.storage.googleapis.com/xx.x.xxxx.xx/chromedriver_mac64.zip
...
TypeError: makedirs() got an unexpected keyword argument 'exist_ok'
~/chromedriver/chromedriver
使用编辑器打开~/.bash_profile
并添加:
export PATH="$HOME/chromedriver:$PATH"
打开新的终端窗口,ta-da?
答案 13 :(得分:0)
我同意ImNt的回答。尽管我想为那些使用virtualenv的人添加它,但是您应该使用以下示例格式以管理员身份在venv文件中运行python: 驱动程序= webdriver.Chrome(r'C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe')
答案 14 :(得分:0)
我在Webdriver 3.8.0(Chrome 73.0.3683.103和ChromeDriver 73.0.3683.68)上遇到了此问题。我做完之后问题就消失了
pip install -U selenium
将Webdriver升级到3.14.1。
答案 15 :(得分:0)
对于Mac OS X用户
brew tap homebrew/cask
brew cask install chromedriver
答案 16 :(得分:0)
另一种方法是下载并解压缩chromedriver并将' chromedriver.exe'放入 C:\ Program Files \ Python38 \ Scripts 中,然后无需提供路径司机,只是
driver = webdriver.Chrome()
答案 17 :(得分:0)
最好的方法可能是获取当前目录并将剩余地址附加到该目录。
像这样的代码(Windows上的Word。在Linux上,您可以使用pwd行):
webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'
答案 18 :(得分:0)
在 C:\ Windows 处添加 webdriver (chromedriver.exe或geckodriver.exe)。 就我而言,这是可行的
答案 19 :(得分:0)
我遇到了与您相同的问题。 我正在使用PyCharm编写程序,并且我认为问题出在PyCharm中而不是OS中。 我解决了该问题,方法是进行脚本配置,然后手动编辑环境变量中的PATH。 希望对您有所帮助!
答案 20 :(得分:0)
在将chromedriver添加到路径之前,请确保其与浏览器版本相同。
如果没有,则需要匹配版本:更新/降级chrome以及升级/降级webdriver。
我建议尽可能多地更新您的chrome版本,并匹配网络驱动程序。
要更新Chrome:
help
-> About Google Chrome
然后从此处下载兼容版本:http://chromedriver.chromium.org/downloads 。
注意:最新的chromedriver并不总是与chrome的最新版本匹配!
现在您可以将其添加到PATH:
在计算机中的某个位置创建一个新文件夹,您将在其中放置Web驱动程序。
我在webdrivers
C:\Program Files
的文件夹
复制文件夹路径。在我的情况下是C:\Program Files\webdrivers
右键单击this PC
-> properties
:
Advanced System settings
Environment Variables
System variables
中,单击path
,然后单击edit
new
就这样!我用了pycharm,不得不重新打开它。也许与其他IDE或终端相同。
答案 21 :(得分:0)
检查您的chrome驱动程序路径,可能无法从那里获取。 只需复制即可将驱动程序位置粘贴到代码中。
答案 22 :(得分:0)
如果使用的是远程解释器,则还必须检查是否定义了其可执行的PATH。在我的情况下,从远程Docker解释器切换到本地解释器解决了问题。
答案 23 :(得分:0)
根据instruction,在实例化webdriver时,您需要包括ChromeDriver的路径。Chrome例如:
driver = webdriver.Chrome('/path/to/chromedriver')
答案 24 :(得分:0)
在我的情况下,当我将chromedriver文件复制到c:\ Windows文件夹时,此错误消失。因为windows目录位于python脚本检查chromedriver可用性的路径中。
答案 25 :(得分:0)
如果在确定PATH设置正确后无效,可以尝试重新启动计算机。
在Windows 7的情况下,我总是在WebDriverException上出现错误:消息:对于chromedriver,gecodriver,IEDriverServer。我很确定我有正确的道路。重启电脑,全部工作
答案 26 :(得分:-3)
(对于Mac用户) 我有同样的问题,但我通过以下简单方法解决了: 您必须将chromedriver.exe放在执行脚本的同一文件夹中,然后在pyhton中编写以下说明:
导入操作系统
os.environ [“ PATH”] + = os.pathsep + r'X:/您的/文件夹/脚本/'