selenium 版本介绍和底层原理分析

更多selenium相关语法点这里

一 、selenium版本介绍

是目前软件测试行业最为核心主流的自动化软件测试框架技术体系。

python下目前主流的版本3.141,已经有了4.0的alpha版本

selenium IDE,早期firefox下的插件,支持浏览器的脚本录制与回放,存在于selenium1和2的版本下,后被淘汰

selenium+webdriver,市场有需求,谷歌牵头搞出来,是从selenium2开始一直持续至今,最常用,后期应该会有变化,微软2020年新出的playwright框架已经集成了各浏览器的驱动,不依赖driverl了,不需要我们再考虑webdriver和浏览器的适配问题

seleniumIDE 4.0版本,团队一直没有放弃IDE研发,可以完全支持多种浏览器的脚本录制,纯英文,还不火

selenium Grid,分布式的概念,企业用的不多,但很重要。可以将原有的自动化测试框架从单体服务模式转变为M/S(主从节点)形态的分布式架构形式来实现,可以结合用例并发的模式来存在,比如需要同时起500个浏览器,一台机子肯定不行,同时用100台机子来均摊 ,实现并发,而传统的线性测试需要一个一个来。

二、selenium底层

2.1 WebDriver是什么?

WebDriver就是一个浏览器驱动?其实并不能算是一个驱动,没有那么高级。 就是一个基于HTTP网络协议进行数据交互的代理服务。 在selenium+driver+python运行过程中,driver对象的指令的下发内容,已经封装在selenium源码中

2.2 底层实现

selenium各种方法的底层其实就是用execute执行各种js

 

2.3 八种方法的本质

driver.find_element_by_id('kw') # 此类方法底层还是调用find_element,就是个套娃多此一举

driver.find_element('id', 'kw') # 最基本的,4.0 alpha版本也是推荐这个
driver.find_element(By.ID, 'kw') # 我喜欢这个,不用写那么多字符串

# 从以下By源码可以看出,By其实就是将八种方法的字符串封装成了类属性
class By(object):
   ID = "id"
   XPATH = "xpath"
   LINK_TEXT = "link text"
   PARTIAL_LINK_TEXT = "partial link text"
   NAME = "name"
   TAG_NAME = "tag name"
   CLASS_NAME = "class name"
   CSS_SELECTOR = "css selector"

三、javascript

1.web自动化测试框架的原理就是通过js来实现对web元素的操作
selenium:它将我们要进行自动化操作的网页内嵌到它自己的网页,然后通过脚本语言js去执行自动化操作
自动化测试框(appium,qtp,macaca,roboframework)底层用的也是selenium
接口测试,了解接口的本质,接口的原理,接口发送网络请求通信的原理,
2.提高我们自动化用例执行的效率和稳定性
时间日历控件
文件上传
点击
输入
勾选
3.selenium难以实现的操作
a.一些隐藏的按钮,通过js更改元素的属性,显示隐藏的按钮
b.滚动条
c.前端限制输入,移除readonly属性

四、等待

等待的三大方式:
1.强制等待
  所有自动化学习者,最先接触的等待就是强制等待(Sleep)
  作用:当代码运行到强制等待这一行的时候,无论出于什么情况,都强制性等待指定的时间
  优势:简单入门,调试的一把好手
  劣势:只能够对单次生效,无法做有效的判断,会浪费大量的时间
2.隐式等待
  藏起来的等待,一次设置,终生有效,针对于当下的WebDriver对象,进行的等待时长的设置直接通过WebDriver对象的implicitly_wait()方法进行设置
  作用:对WebDriver对象设置全局等待,每一次操作,如遇到页面加载,则默认进入隐式等待,如遇元素无法找到,则进入隐式等待,当达到等待最大时长,则继续进行后续的代码
  优势:设置一次即可,全局使用,而且等不到不会报错
  劣势:必须等待页面加载完成才会进入到后续的操作,或者等待超时再进入后续的操作
3.显式等待
  指名道姓的等,专门用于等待指定的元素对象
  通过导入from selenium.webdriver.support.wait import WebDriverWait
  优势:专门用于对指定的某一个元素进行等待

 

posted @ 2021-05-26 15:34  www.pu  Views(2220)  Comments(0Edit  收藏  举报