0


Python+Selenium4环境搭建与原理讲解_web自动化(1)

今日内容:环境搭建与原理讲解(Selenium的三大组件、两大对象、webdriver类型和下载、webdriver协议原理)

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 
  1. 自动选择合适driver

  2. 自动下载和配置driver

  3. 自动启动浏览器

**1. **安装依赖

搭建环境,需要Python3.9以上

pip install webdriver-helper

**2. **启动浏览器

from webdriver_helper import *

driver = get_webdriver() # 默认是谷歌

driver = get_webdriver("firefox") # 可以指定火狐

driver.get("https://baidu.com")

自动将dirver安装到 home 目录下的 .wdm 目录

#get_webdriver()后,不使用with也会自动关闭浏览器
with get_webdriver() as driver:
    driver.get("https://www.baidu.com")

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对象要通过元素定位来获取

怎么知道有哪些方法?有哪些属性?

有权威信息来源

总结

  • 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组件之一) 提供主要对象

之一,实现浏览器层面的操作

标签: 前端 selenium firefox

本文转载自: https://blog.csdn.net/weixin_41121249/article/details/126999380
版权归原作者 天草柑橘 所有, 如有侵权,请联系我们删除。

“Python+Selenium4环境搭建与原理讲解_web自动化(1)”的评论:

还没有评论