web自动化测试系列-selenium的运行原理和常用方法介绍(二)

目录

1.selenium的运行原理

2.常用方法介绍


接上文 :web自动化测试系列-selenium的安装和运行(一)-CSDN博客

在上文中我们编写了一段简单的代码 ,可以驱动浏览器访问百度并搜索关键字 。这里我们再把这段代码再拿来加以说明 。

# 1. 导包
from selenium import webdriver
import time

# 2. 创建浏览器驱动
driver = webdriver.Chrome()
driver.maximize_window()

# 3. 打开web页面,输入百度
driver.get("http://www.baidu.com")

time.sleep(3)		# 休眠3秒

# 4. 在浏览器地址栏中输入关键字 :python
driver.find_element_by_id("kw").send_keys("python")

# 5. 点击按钮 :百度一下
driver.find_element_by_id("su").click()

# 6. 暂停
time.sleep(5)

# 7. 关闭浏览器
driver.quit()

如果你是初次接触它 ,你可能会想 ,这段代码是怎么驱动浏览器运行的了 ?要知道这个问题的答案 ,就必须搞清楚以下3个问题 。

  1. 它(selenium)的运行原理 .

  2. 所调用方法的含义

  3. 它是如何准确的点击按钮和进行输入框输入的 ?

本篇幅只聊前两个问题 。

1.selenium的运行原理

下面这张图是selenium官网提供的一张运行原理图 ,比较清楚地说明了它的运行原理 。

具体步骤是 :

  1. 当使用 Selenium启动浏览器器时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并与浏览器器绑定。之后,Remote Server 就开始监听 Client 端的操作请求;

  2. 执⾏行行测试时,测试⽤用例例会作为 Client 端,将需要执⾏行行的⻚页⾯面操作请求以 Http Request 的⽅方式发送给 Remote Server 。 该 Http Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器器执⾏行行的具体操作;

  3. Remote Server 接收到请求后,会对请求进⾏行行解析,并将解析结果发给WebDriver,由WebDriver 实际执⾏行行浏览器器的操作;

  4. WebDriver 可以看做是直接操作浏览器器的原⽣生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏 览器器对应的 WebDriver。

你可能不太理解Remote Server 是啥? WebDriver又是啥 ? 接下来我们把这几个关键术语进行解释。

关键字 说明 备注
Test Case(Client) 编写的python代码 当然它也支持其它语言,这里相当于客户端
Remote Server 就是selenium selenium里有个类叫WebDriver ,负责接收client端的请求,解析后转发给浏览器驱动。
WebDriver 浏览器驱动文件,名称为:chromedriver.exe 接受Remote Server请求,并请求操作浏览器
Web Browser 浏览器

所以 ,以上代码中的这句driver = webdriver.Chrome() ,就已经启动了Remote Server ,而后的代码都将通过Remote Server解析后发送给浏览器驱动 。

2.常用方法介绍

以上代码中通过driver调用的方法都属于selenium的方法 ,其中它就是如下这些 。

 以上除了find_element_by_id() 这个方法没有介绍外(单独介绍),代码中的方法都已提到 。

最后通过一张图来总结它的属性和方法 。  

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 08:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 08:22:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 08:22:02       82 阅读
  4. Python语言-面向对象

    2024-03-27 08:22:02       91 阅读

热门阅读

  1. 云原生周刊:Kubernetes v1.30 一瞥 | 2024.3.25

    2024-03-27 08:22:02       38 阅读
  2. 使用Asible自动化Linux管理任务

    2024-03-27 08:22:02       36 阅读
  3. WebSocket 前端深入介绍

    2024-03-27 08:22:02       41 阅读
  4. IntelliJ IDEA 常用快捷键一览表

    2024-03-27 08:22:02       35 阅读
  5. STM32 | PWM脉冲宽度调制(第五天)

    2024-03-27 08:22:02       42 阅读
  6. Springboot vue elementui 在线考试系统案例源码

    2024-03-27 08:22:02       35 阅读
  7. Aapche Nutch建立自己的搜索引擎

    2024-03-27 08:22:02       39 阅读
  8. 数据分析中常用的9大算法原理

    2024-03-27 08:22:02       48 阅读
  9. document.getElementById(‘username‘).value 是什么

    2024-03-27 08:22:02       42 阅读
  10. Jmeter 聚合报告之 90% Line 正确理解

    2024-03-27 08:22:02       35 阅读
  11. ASP.NET单选框与多选框值获取

    2024-03-27 08:22:02       36 阅读