【python+selenium的web自动化】- Selenium WebDriver原理及安装
如果想从头学起selenium,可以去看看这个系列的文章哦!
https://www.cnblogs.com/miki-peng/category/1942527.html
简单介绍
selenium
selenium是一个用于测试web网页的自动化测试工具,它直接运行在浏览器中,模拟用户的操作。
- 🍋 支持多浏览器:ie、Firefox、Chrome、edge、Safari等
- 🍋 跨平台:windows、Linux、mac等
- 🍋 支持多语言:python、java、ruby、c#等
webdriver
webdriver则是selenium里最重要的东西,它是按照client/server模式设计的,通过驱动程序与浏览器进行通信。而selenium代码与浏览器驱动程序之间是通过http协议进行数据交互的,这种方式,不在乎客户端是什么样的形式,只要数据的格式和协议是服务端能够解析的就可以,因此它可以跨平台,支持多语言多浏览器。
- 🍓 client:编程语言客户端,比如说python selenium客户端
- 🍓 server:浏览器驱动程序,用来接收客户端的请求并驱动浏览器执行操作然后返回结果。
通信步骤:
- 🍏 1. webdriver启动浏览器驱动程序,并设置侦听端口号
- 🍏 2. webdriver客户端与浏览器端建立连接
- 🍏 3. 连接成功之后,所有的操作(比如查找元素、点击等)都是客户端通过commandExecuter发送http请求到服务端,服务端根据收到的请求做相应的操作并返回结果
三大浏览器及驱动:
每一个浏览器匹配一个驱动,驱动版本还要匹配对应的浏览器的版本,否则运行可能会报错不兼容等问题。
- 🍆 Chrome:chromedriver
- 🍆 IE: ieserverdriver
- 🍆 Firefox:geckodriver
环境安装
🍄 1.安装selenium
命令行使用以下命令直接安装:pip install -U selenium
🍄 2.安装浏览器及其驱动
这里以Chrome为例,驱动下载地址 http://npm.taobao.org/mirrors/chromedriver/ ,驱动目录下有一个notes.txt文件,里面记录了该驱动支持的浏览器版本,根据提示安装对应的浏览器版本。浏览器驱动是.exe文件,下载后直接放在python的根目录下即可。
启动浏览器
使用webdriver前,需要先导入包from selenium import webdriver
,每次打开浏览器时,执行完毕要记得关闭浏览器,使用driver.quit()
关闭。
from selenium import webdriver
import time
# 实例化chrome类,启动了Chromedriver,并与Chromedriver开启了会话
# ip + 端口 -- 启动
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(5)
# 关闭浏览器
drver.quit()