使用selenium自动控制浏览器找不到Chromedriver问题

ChromeDriver 是 google 为网站开发人员提供的自动化测试接口,它是 selenium2 和 chrome浏览器 进行通信的桥梁。selenium 通过一套协议(JsonWireProtocol :https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol)和 ChromeDriver 进行通信,selenium 实质上是对这套协议的底层封装,同时提供外部 WebDriver 的上层调用类库。

下面看下解决使用selenium自动控制浏览器找不到Chromedriver,具体内容如下:

最近学习爬虫过程中使用了selenium模块通过调用Chromedriver来实现自动控制Chrome,但其中遇到一些问题,在此总结。

首先,下载ChromeDriver时一定要对应好自己的浏览器版本,下载链接:http://npm.taobao.org/mirrors/chromedriver/

使用selenium自动控制浏览器找不到Chromedriver问题

将下载好的ChromeDriver保存至Chrome浏览器的安装文件夹下

使用selenium自动控制浏览器找不到Chromedriver问题

然后将ChromeDriver的路径配置到环境变量Path中,此时正常情况下调用ChromeDriver应该可以正常使用,

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.baidu.com/')

或者

from selenium import webdriver

options = webdriver.ChromeOptions()
#options.add_argument('user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36"')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.baidu.com/')

但有的电脑即使配置完环境变量依旧不能正常使用,看了其他博主所写,有的建议将ChromeDriver放置在python的安装目录以及工作目录下,结果是依然不起作用,产生报错:WebDriverException: Message: unknown error: cannot find Chrome binary那就只能采用设置路径的方法进行调用,如下:

from selenium import webdriver
browser = webdriver.Chrome('你的Chromedriver路径')
browser.get('http://www.baidu.com/')

from selenium import webdriver
options = webdriver.ChromeOptions()
#options.binary_location = r'你的Chrome安装路径'
#options.add_argument('user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36"')
driver = webdriver.Chrome(chrome_options=options,executable_path=r'你的Chromedriver路径')
driver.get('https://www.baidu.com/')

使用selenium自动控制浏览器找不到Chromedriver问题

总结

以上所述是小编给大家介绍的解决使用selenium自动控制浏览器找不到Chromedriver问题,希望对大家有所帮助,也非常感谢大家对我们网站的支持!

时间: 2020-02-15

selenium + ChromeDriver安装及使用方法

Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.而对于爬虫来说,使用Selenium操控浏览器来爬取网上的数据那么肯定是爬虫中的杀手武器.这里,我将介绍selenium + 谷歌浏览器的一般使用.首先会介绍如何安装部署环境,然后贴出一些本人所使用的一些方法,最后给出github地址,供大家下载. 1. selenium 环境配置 selenium 官网地址:http://www.seleniumhq.org/download/

selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)

使用WebDriver在Chrome浏览器上进行测试时,需要从http://chromedriver.storage.googleapis.com/index.html网址中下载与本机chrome浏览器对应的驱动程序,驱动程序名为chromedriver: chromedriver的版本需要和本机的chrome浏览器对应,才能正常使用: 第一步:下载对应版本的chromedriver驱动文件,具体版本请对照文章底部的对应关系表: 如本机的chrome浏览器版本为:版本 61.0.3163.100

selenium 安装与chromedriver安装的方法步骤

安装 selenium可以直接可以用pip安装. pip install selenium chromedriver的安装一定要与Chrome的版本一致,不然就不起作用(不要问我是怎么知道的). 有两个下载地址: 1.http://chromedriver.storage.googleapis.com/index.html 2.https://npm.taobao.org/mirrors/chromedriver/ 或者本地下载https://www.jb51.net/softs/538241.

解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path

'chromedriver' executable needs to be in Path 声明:本人萌新,刚学python不久记录一下自己的坑,发出来若能帮助到一些人尽早解决问题那便是极好的,( ̄▽ ̄)" 在进行爬虫爬取淘宝商品信息时候,利用selenium来模拟浏览器进行爬取时遇到了这个问题: selenium.common.exception.WebDriverException:Message:'chromedriver' executable needs to be in Path 详

解决Maven 项目报错 java.httpservlet和synchronized使用方法

使用java8 的lanmbe表达式时,使用java1.8编译,则会报错 需要在pom.xml的<bulid></build>中添加 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</versi

ECSHOP完美解决Deprecated: preg_replace()报错的问题

随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出.说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in....... 注意:不是所有人的ECS

解决Python requests 报错方法集锦

python版本和ssl版本都会导致 requests在请求https网站时候会出一些错误,最好使用新版本. 1 Python2.6x use requests 一台老Centos机器上跑着古老的应用,加了一个新模块之后报错 报错 InsecurePlatformWarning: A true SSLContext object is not available. /usr/lib/python2.6/site-packages/requests/packages/urllib3/util/ss

解决VC++编译报错error C2248的方案

在使用诸如:CArray或是 CList等类时,经常会出现此错误 此错误的原因是由于自定义的类的数组项时 有一个操作如  Add()  在这个操作中,实际上需要一个 = 操作,但是这个 =操作在 自定义类中没有实现,于是,程序自动去它的parent 类 也就是 CObject 类去找,但是却找到个这个类的 = 是一个 private  于是就报了这个错误. 知道了原因解决方法自然就有了,那就是在自定义类中 重载操作符 =   重载后 这个错误就没有了. class COptRect : publ

解决jquery插件:TypeError:$.browser is undefined报错的方法

首先先说一说$.browser browser就是用来获取浏览器基本信息的. jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9. 解决方法:加入以下js即可 (function(jQuery){ if(jQuery.browser) return; jQuery.brows

Vue.js报错Failed to resolve filter问题的解决方法

之前使用vue.js写分页功能时,写了一个过滤器,发现一个比较奇怪的错误. console控制台调试的时候,提示错误消息: Failed to resolve filter: HomePage console错误信息.jpg 我原来的写法: 原来的错误写法.jpg 错误原因: 经过自己的摸索,后来发现竟然是代码顺序错误问题. 由于先执行的pageList,后执行的Vue的过滤方法,最终调整过的写法: 修改后的正确写法.jpg 作者:=金刚= 文章地址:http://www.cnblogs.com

Android开发中Eclipse报错及对应处理方法总结

本文较为详细的总结了Android开发中Eclipse报错及对应处理方法.分享给大家供大家参考,具体如下: 报错1: Conversion to Dalvik format failed with error 1 报错原因:原因是我在android工程中不小心多导入Java的mina,结果一跑程序就报这个错误. 解决方法:将Java中用到的mina包移除,就OK了. 小结:以后遇到这种报错时,记得提醒自己可能是由于自己导错包了. 附: 网上其他处理方法:<丢失Android系统库或者Conver

eclipse如何忽略js文件报错(附图)

忽略某个js文件报错的方法: Project Properties > JavaScript > Include Path > Source > 选中Exclude > 点击edit按钮 > 在下面的 Exclusion patterns 中添加对应的文件. 截图如下

django项目运行因中文而乱码报错的几种情况解决

前言 django项目开发过程中,碰到了多种情况下的中文乱码报错,在这儿做一下处理总结. 报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position x-x: ordinal not in range(128) 1.因代码中的中文注释问题的报错 django项目的.py文件文件中加入了中文注释,经常会因此报错而导致无法运行,究其原因是编码的问题,最后的解决办法是直接在有中文注释的.py文件的顶部加上: # -*

关于mongoose连接mongodb重复访问报错的解决办法

具体代码如下所示: var express = require('express'); var mongoose = require('mongoose'); var router = express.Router(); var Person = mongoose.model('Person',{ id:Number, name:String }); /*新增*/ router.get('/insert', function(req, res){ var student = new Person