目录
1.认识Selenium
是一个综合性项目:包含一系列的工具和库,支持 Web 浏览器的各种 自动化操作:
软件测试
爬虫领域
RPA 领域
特点:
1. 开源: https://github.com/SeleniumHQ
2. 兼容性: Chrome 、 FireFox 、 Edeg 、 IE 、 Opera 、 Safari
3. 支持多种编程语言: Java 、 Python 、 C# 、 Ruby 、 JavaScript
4. 执行并行测试: Grid 组件可以实现在多个机器上并行执行用例,极大的提高测试效率
简单来说:selenium 成熟、知名、强大,是新手学习首选
2. Selenium三大组件
在 Selenium 中包含三大组件,共同构成浏览器自动化操作的工具集
1. Selenium IDE (录制、调试测试用例)
2. Selenium WebDriver (执行用例)
3. Selenium Grid (远程、并行执行用例)
其中, WebDriver 是最重要组件
3. Selenium自动化测试环境搭建

Selenium WebDriver 环境搭建以下几个部分:
- 编程语言
- selenium库
- 浏览器驱动driver
- 浏览器
关于浏览器、编程语言的安装,这里掠过,有困难的同学 可以单独找老师
3.1安装selenium库
pip install selenium
3.2安装浏览器驱动
以 谷歌 + 火狐 为例 演示如何安装
1.查看浏览器版本号
谷歌:帮助 - 关于 - 版本 105.0.5195.127(正式版本) (64 位)
火狐:帮助 - 关于 - 95.0.2 (64 位 ) - 最新版本
2.下载浏览器驱动
谷歌:
1. 访问 : https://npm.taobao.org/mirrors/chromedriver/
2. 选择版本
3. 选择操作系统
4. 下载、解压

火狐:
1. 访问 : https://npm.taobao.org/mirrors/geckodriver/
2. 选择版本
3. 选择操作系统
4. 选择 32 ore 64
5. 下载、解压
3.把driver移动到Path目录
Windows中查看 Path 目录,推荐放在 Python 目录中
set Path


Linux 、Mac查看Path目录
echo $PATH
4.验证driver就绪
执行 chromedriver 可以看到结果

3.3启动浏览器

4. Selenium自动化测试环境的自动化配置
手动配置弊端:
- 繁琐
- 需要更新,反复操作
需要怎么自动化配置:
1. 自动安装 selenium
2. 自动选择合适 driver
3. 自动下载和配置 driver
4. 自动启动浏览器
1.安装依赖
pip install webdriver-helper
2.启动浏览器
from webdriver_helper import *driver = get_webdriver () # 默认是谷歌driver = get_webdriver ( "firefox" ) # 可以指定火狐driver . get ( "https://baidu.com" )
自动将 dirver 安装到 home 目录下的 .wdm 目录
5. Selenium工作原理
Selenium WebDriver 的工作原理
5.1指令执行路径
先看一个代码示例
from selenium.webdriver.common.by import By
from webdriver_helper import *
driver = get_webdriver() # 启动浏览器
driver.get("https://baidu.com") # 访问指定的页面
ele = driver.find_element(By.XPATH, '//*[@id="kw"]')
ele.send_keys("百度一下?")
driver.quit()WebDriver 启动过程中:
1. 检查参数,宣布弃用
2. 启动 Service : service.start() (执行 chromedriver.exe )
3. Service 提供 Restful API ,接口文档: https://www.w3.org/TR/webdriver
4. 调用了一次接口: new_session
5. 其他的所有的事情,都是调用 driver 提供的接口实现的
Python 代码 -- 调用 ---> selenium --- 发送 HTTP 请求 ---> 浏览器驱动 ---- (特殊方法) --> 浏览器
chrome : websocket 调用 devtools 协议
5.2指令内容
https://www.w3.org/TR/webdriver w3c 标准
- webdriver协议 约定内容
- js代码
- 今天,还有很多指令通过js实现
- getAttribute.js 获取元素属性
- isDisplayed.js判断元素是否可见
- findElement.js相对定位se4新特性
5.3两大对象
selenium将各项工作细节进行封装,并且通过 面向对象的方式提供API给技术人员调用
这些API主要集中2个对象中:
- WebDriver 对象: 整个页面,浏览器本身
- WebElemen 对象: 页面中某个元素
如果我们需要获取信息:访问对象的属性
当我们需要修改信息: 调用对象的方法

其中: WebElement对象要通过元素定位来获取
怎么知道有哪些方法?有哪些属性?
- https://www.selenium.dev/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webelement.html#module-selenium.webdriver.remote.webelement
- https://www.selenium.dev/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#module-selenium.webdriver.remote.webdriver
有权威信息来源
总结
- selenium 有三大组件,其中最核心的是WebDriver
- WebDriver 通过面向对象的方式,为技术人员提供结构
- WebDriver 通过Restful API 的方式 调用 浏览器驱动,完成浏览器控制
- 整个过程,已经成为w3c标准,这个标准称为WebDriver 协议
- selenium 两大对象:
- 对浏览器的操作: WebDriver对象
- 对元素的操作: WebElement对象
- Selenium4 已经发布,具体新的语法和特性
- 本次课程使用 selenium 4.1.0
- 没有明确说明的部分,也可能是selenium4的特性,从而在selenium3中报错
- selenium 4 的主要特性
- webdriver 的启动参数
- 元素定位api
- 相对定位
- 双向API (bidi_api) 草稿阶段
- selenium 测试环境,可以手动搭建,也可以自动化搭建
pip install webdriver-helper
from selenium import webdriver
driver = webdriver.Chrome()webdriver能用比较通俗的语言描述是个什么东西?
过去: webdriver 是selenium 组件之一
现在: webdriver 是w3c标准之一,约定如何自动化控制浏览器
对于代码: WebDriver(class WebDriver) 是 webdrievr(selenium组件之一) 提供主要对象
之一,实现浏览器层面的操作
版权声明:本文为weixin_41121249原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。