Selenium环境搭建
基于windows 10
素材
素材下载地址说明pythonCNPM Binaries Mirror官网Index of python-local国内地址Download Python | Python.orgpycharmThank you for downloading PyCharm!社区版chromeGoogle Chrome 网络浏览器中文官网firefoxFirefox 火狐浏览器 - 全新、安全、快速 | 官方最新下载中文官网chromedriverCNPM Binaries Mirror淘宝镜像ChromeDriver - WebDriver for Chrome - Downloads官网geckodriverCNPM Binaries Mirror淘宝镜像https://github.com/mozilla/geckodriver/releases官网
1. python+pycharm
- python要求是3.7+不然会装不上selenium4+版本
- pycharm一般就用最新或次新年度的即可
python步骤扼要
- 选择customize installation,否则安装到系统默认目录(非常深,不便于日常操作)

- 修改安装目录,确认勾选Add Python to enviroment variables

- 注意这样安装的话,如果你系统中有多个python,那它默认是第一个的,你可以根据自己的需要调整或者修改
C:\Users\wuxianfeng>where python
C:\Python311-32\python.exe # 这是刚安装的
C:\Python38\python.exe # 这是以前安装的
- 如果你要同时使用多个环境,那可以复制python.exe一个副本,然后改为自己熟悉的名字

- 效果如下
C:\Users\wuxianfeng>python311
Python 3.11.0 (main, Oct 24 2022, 18:13:38) [MSC v.1933 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
C:\Users\wuxianfeng>python38
Python 3.8.4 (tags/v3.8.4:dfa645a, Jul 13 2020, 16:30:28) [MSC v.1926 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
2. 浏览器
注意: 务必到官网下载最新版本,安装过程不赘述
- 您机器上如果有乱七八糟的其他浏览器可能会影响(很多内核是一样的)
- 安装非官方渠道的浏览器可能会导致无法识别、启动
版本确认
- 在chrome的地址栏输入chrome://version/,找到第一行,示例如下:
Google Chrome 107.0.5304.107 (正式版本) (64 位) (cohort: Stable) - 在firefox的地址栏输入about:support,找到版本信息,示例如下
版本 106.0.1
3. 驱动下载
- 驱动的下载跟你浏览器的版本息息相关
Chrome驱动
仅限于1114及之前的版本
根据你的chrome的版本,如前面获取的107.0.5304.107
在CNPM Binaries Mirror中找到对应的版本,要注意版本号的顺序是字典序,107这样的版本是排在列表的前面的

你会发现你的版本号与上面的目录无法完全匹配,找最新的那个(如上面62)一般都OK,因为这2个版本都是支持107大版本的,62是后面更新的,会修复一些bug什么的。
点击进去

注意windows下只有32的,没有64的,你的机器一般是64的,放心用32的即可(兼容的)
下载的是zip,解压得到exe,再配置驱动即可。
但要注意截止到114这个版本往后,在npm位置最新的就114,115+的需要去官网
你可以参考我这个文章 https://www.cnblogs.com/wuxianfeng023/p/17650789.html
geckodriver驱动
- 根据你的firefox的版本,如106.0.1(一般是当前最新的),这个版本号跟驱动的版本号没有直接的关联关系
- 那你在CNPM Binaries Mirror 地址中找到当前最新发布的驱动即可,你需要注意的是最新的版本由于名字的排序问题,并不是最上面或者最下面,它往往是在中间的,你要结合右侧的时间来确定。

- 点击进去后对应的是各个系统平台下的安装包,根据自己的操作系统选择即可,你是windows要注意是32还是64的(现在32的几乎没有了)

- 如果你的firefox并不是最新的,你下载最新的geckodriver驱动一般也会有问题,如果要找到比较匹配的版本,那你要去官网:https://github.com/mozilla/geckodriver/releases,查看对应release的版本支持说明方可。
- 比如0.32.0的release中就有这么一段描述,说明它支持firefox版本106

4. 配置驱动
配置
核心的一句话就是把exe放到PATH的任一目录下,推荐是跟你当前python.exe所在的目录放一起。
这意味着,比如我的PATH当前是这样的

你只要把chromedriver.exe或者geckodriver.exe放其中任一一个目录下即可,甚至你可以自己新建一个目录,把它放进去即可。
但是推荐你放到python的主目录下,比如我是下面3个
C:\Users\wuxianfeng>where python D:\Python39\python.exe C:\Python310\python.exe D:\Python37\python.exe
验证
- 放好你的驱动
- 重新打开cmd
- 输入命令chromedriver或者geckodriver应该能得到类似如下的提示,就表示你现在配置ok了
C:\Users\songqin008>chromedriver Starting ChromeDriver 107.0.5304.62 (1eec40d3a5764881c92085aaee66d25075c159aa-refs/branch-heads/5304@{#942}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. ^C # 按ctrl+c 中断 C:\Users\songqin008>geckodriver 1669260642344 geckodriver INFO Listening on 127.0.0.1:4444 ^C # 按ctrl+c 中断
5. FAQ
Python版本和Selenium版本要求
- python>=3.7,推荐3.8或3.9
- Selenium>=4.3,推荐4.3,已知4.6有点小问题。
版本不匹配
python代码
from selenium import webdriver driver = webdriver.Chrome()核心报错信息
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 91 Current browser version is 107.0.5304.107 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe翻译: 会话没有创建: 你这个版本的chromedriver只支持chrome浏览器版本91,当前浏览器版本是....(且告诉了你chrome应用程序的位置)
检查- 浏览器版本:在浏览器地址栏输入chrome://version- 确认你驱动的版本: 在cmd下输入chromedirver能得到当前驱动的版本
D:\Python39>chromedriver Starting ChromeDriver 107.0.5304.62 (1eec40d3a5764881c92085aaee66d25075c159aa-refs/branch-heads/5304@{#942}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully.- 两者大版本必须一致
驱动没找到
- python代码
from selenium import webdriver driver = webdriver.Chrome() - 核心报错
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home - 翻译:这个可执行程序需要在PATH中
- 检查- 在cmd下输入chromedriver你应该得到的是如下
C:\Users\songqin008>chromedriver 'chromedriver' 不是内部或外部命令,也不是可运行的程序 或批处理文件。- 你要确认你存放的是chromedriver.exe- 它在当前你系统的PATH的任一目录下- 你重开了cmd
其他错误
- can not connect to the service chromedriver
6. 关于mac
- 基础好的同学配置这部分不是问题
- 对基础薄弱的同学要关注几点1. 下载的驱动注意是mac还是mac64的,错的话会提示cpu type不匹配的问题2. mac下的驱动不是exe格式,解压后是chromedriver这样的名字3. PATH的配置尤为重要,不要轻易参考网上的,跟你的系统可能未必匹配,你首先要确认你的profile文件名
可能是 1. ~/.bash_profile # 如果是bash 2. ~/.zshrc # 如果是zsh 证明很简单 1. 在1个文件的末尾加一句话echo hello 2. 保存退出,重开终端,不要做任何的命令,如果没有输出hello说明系统不会读取该文件 3. 如果没有输出,就换另外一个文件 4. 直到看到输出hello,说明读取的就是这个文件,那就把PATH配置到文件中即可4. 配置PATH的时候记得务必携带之前的PATH# 一般你应该这么写 export PATH=$PATH:你要加的新的应用的bin目录 # 例如,你下载了allure,解压开一个bin # 如果目录是 /usr/local/allure-2.14.0/bin export PATH=$PATH:/usr/local/allure-2.14.0/bin # 虽然放前面和后面是类似的,但前面的话会先检索(如果存在同名应用,那你新加的不会被用到)
版权归原作者 wuxianfeng023 所有, 如有侵权,请联系我们删除。