1. 什么是Selenium?
Selenium主要用于web应用程序的自动化测试,但并不局限于此,它还支持所有基于web的管理任务自动化。
2、selenium 自动化流程如下:
- 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)
- 客户端库会发送Selenium 命令 给浏览器的驱动程序
- 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令
- 浏览器执行命令
- 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序
- 自动化程序对返回结果进行处理
3、Selenium环境的安装主要就是安装两样东西: 客户端库 和 浏览器驱动。
1)安装客户端命令
使用快捷键win+r输入cmd打开命令行程序
输入命令:
pip install selenium
可能会遇到的问题:
1. 版本太低
使用命令查看pip版本,命令:
pip -V
2. 升级命令:python -m pip install --upgrade pip
3. 验证升级成功,再次使用pip show pip命令查看pip版本。
pip show pip
4. 输入下面语句修复pip
python -m ensurepip
5. 然后再升级pip版本
2)安装浏览器驱动
浏览器驱动 是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。
推荐大家使用 Chrome浏览器 。
- 用命令chrome://version查看谷歌版本
- 下载浏览器驱动,浏览器驱动必须和浏览器版本匹配
比如:当前Chrome浏览器版本是105, 通常就需要下载105开头的目录里面的驱动程序 。
注意:驱动和浏览器的版本号越接近越好,但是略有差别,通常也没有什么问题。
注意:兄弟们,下载chromedriver_win32.zip,并解压放到Chrome谷歌的安装目录下,默认安装目录为:C:\Program Files\Google\Chrome\Application\
实现一个简单的自动化脚本
1、打开PyCharm,编写以下脚本
from selenium import webdriver # 导入webdriver包
from selenium.webdriver.chrome.service import Service
# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))
# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')
2、省略浏览器驱动路径
前面,我们的代码创建 WebDriver对象时,需要指定浏览器驱动路径,比如
from selenium.webdriver.chrome.service import Service
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))
将浏览器驱动所在目录加入环境变量Path, 写代码时,就可以无需指定浏览器驱动路径了,像下面这样
wd = webdriver.Chrome()
因为,Selenium会自动在环境变量 Path 指定的那些目录里查找名为chromedriver.exe 的文件。
一定要注意的是,加入环境变量 Path 的,不是浏览器驱动全路径,比如 C:\Program Files\Google\Chrome\Application\chromedriver.exe
而是 浏览器驱动所在目录,比如 C:\Program Files\Google\Chrome\Application
注意:配置环境变量后,记得重启
注意:若导包错误,安装了selenium库,可是在导入的时候,仍然提示selenium库不存在。
这种情况可能使Pycharm中Project Interpreter环境问题
通过file->setting进入修改,如下图对应位置,点击左边的+好,将其指向本机的python环境即可
其中,下面这行代码,就会运行浏览器驱动,并且运行Chrome浏览器
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))
注意,等号右边 返回的是 WebDriver 类型的对象,我们可以通过这个对象来操控浏览器,比如 打开网址、选择界面元素等。
而下面这行代码,就是使用 WebDriver 的 get 方法 打开网址 百度
wd.get('https://www.baidu.com')
执行上面这行代码时,自动化程序就发起了 打开百度网址的 请求消息 ,通过浏览器驱动, 给 Chrome浏览器。
Chome浏览器接收到该请求后,就会打开百度网址,通过浏览器驱动, 告诉自动化程序 打开成功。