关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)


目录

  • 浏览器版本与驱动版本
    • 1. 浏览器版本查看
    • 2. 驱动版本选择与下载
  • Chromedriver的配置
    • 1. 使用executable_path参数
    • 2. 创建Service对象
    • 3. 使用默认值

selenium测试工具可以用来模拟用户浏览器的操作,其支持的浏览器有:PhantomJS,Firefox,Chrome等等,开发者可以根据当前的系统形式选择不同的模拟浏览器
每种模拟浏览器都需要对应的浏览器驱动(一个以.exe为后缀的可执行文件),笔者使用谷歌浏览器Chrome,对应的浏览器驱动可以通过下面的网址下载
  1. google官方(由于防火墙的保护,一般无法访问)
  2. 镜像网站
浏览器版本与驱动版本 1. 浏览器版本查看 【关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)】打开谷歌浏览器>>>Settings>>>About Chrome>>>查看浏览器版本
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

2. 驱动版本选择与下载 打开上面的镜像网站,我们可以看到多种不同版本的Chrome驱动关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

选择与浏览器版本最接近的驱动版本,点击蓝色链接
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

每个蓝色链接都对应着该版本驱动,其中又因系统的不同被分为不同的压缩包,关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

笔者的在这里只介绍windows的驱动下载,所以我们点击下载win32.zip的压缩包,将其保存在桌面
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

打开后,我们看到里面只有一个.exe文件,这就是我们所说的Chrome浏览器驱动
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

Chromedriver的配置 上面我们已经下载好了浏览器驱动,但是还不能直接在程序中使用,否则会程序下面的错误
‘selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. ’
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

关于其配置,通常有下面几种方法
1. 使用executable_path参数 通过selenium.webdriver.Chrome()实例化一个driver时,需要通过executable_path参数指明驱动器所在路径
实例:使用百度自动搜索python
from selenium import webdriver import timeurl='http://www.baidu.com' path='e:\\chromedriver.exe' driver = webdriver.Chrome(executable_path=path) driver.get(url) driver.find_element('id','kw').send_keys('python') driver.find_element('id','su').click() time.sleep(2) driver.quit()

运行结果
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

2. 创建Service对象 最近使用第一种方法程序提出了下面的警告:‘DeprecationWarning: executable_path has been deprecated, please pass in a Service object’
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

程序在告诉我们executable_path已被弃用,请传入一个Service对象,可能是因为selenium库进行了更新,我们可以先查看一下webdriver.py
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

从上面我们可以看到程序报错的原因,果然这个用来表示可执行文件路径的参数已被弃用,但貌似它被存放在了一个service对象中,我们再来看一下service.py
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

既然executable_path被重构进了service.py中,我们可以实例化一个Service对象来表示浏览器驱动的路径
from selenium import webdriver import timeurl='http://www.baidu.com' path=Service('e:\\chromedriver.exe') # 将路径实例化为一个Service对象 driver = webdriver.Chrome(service=path) driver.get(url) driver.find_element('id','kw').send_keys('python') driver.find_element('id','su').click() time.sleep(2) driver.quit()

执行结果
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

3. 使用默认值 当下载好.exe文件后,我们将其转移至python解释器:python.exe同级目录Scripts
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

如图
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

接下来我们实例化driver对象时就不需要再次指明路径
from selenium import webdriver import timeurl='http://www.baidu.com' driver = webdriver.Chrome() driver.get(url) driver.find_element('id','kw').send_keys('python') driver.find_element('id','su').click() time.sleep(2) driver.quit()

运行结果
关于python的一些tip|关于selenium配置Chrome驱动(Windows系统)
文章图片

    推荐阅读