一篇关于UI自动化的持续总结

目前工作中使用的UI自动化框架:pytest+selenium。selenium中有几个概念,刚刚了解,记录下:

selenium-webdriver

selenium-webdriver和webdriver是两个东西。前者是selenium基于浏览器原生API封装的库,后者则是浏览器厂商提供的驱动软件

webdriver

webdriver是W3C的一个标准,是一个远程控制协议。通过该协议,每个浏览器均提供了跨平台和跨语言的方式来远程操作浏览器;同时也提供一系列接口访 问和操作DOM,进而控制浏览器的行为。

换句话说,W3C联盟要求的浏览器厂商支持的webdriver协议,为我们利用脚本操控浏览器留下了后门

W3C :这是一个联盟,负责管理行业标准之类的

总结:selenium通过指定元素驱使webdriver,再有webdriver和浏览器内核进行模拟操作。但不同浏览器对web元素的操作和呈现会有差异,webdriver实现则不同,直接导致selenium-webdriver也要分浏览器处理相同操作

https://www.w3.org/TR/webdriver1/

  selenium源码分析之webdriver:  https://blog.csdn.net/ant_ren/article/details/7970793(还未仔细研读,本周安排)  https://segmentfault.com/a/1190000017841619  https://www.lambdatest.com/blog/selenium4-w3c-webdriver-protocol/  https://python-selenium-zh.readthedocs.io/zh_CN/latest/  新的selenium4看起来很棒,这是索引:  https://www.lambdatest.com/blog/selenium4-w3c-webdriver-protocol/

HTML简介

操作元素的UI自动化是立足于HTML文档的,首先大致了解下HTML文档

HTML(超文本标记语言),通过 标记标签 (尖括号括起来的词,如****,便可认为是一个标签)创建网页。所以,HTML可以理解为是一组标签;标签属性;标签文本的集合文件,如下:

# DOCTYPE字样告诉浏览器这是一个HTML文档

# HTML单行注释

# 表示网页开始,网页内容都是从html开始

# head负责元数据,body加载网页内容

什么是标签?

标签是使用<>括起来的词,如

,它基本成对出现,也有少部分单独出现,如



什么是元素?

标签和内容一起构成元素,

My Heading

即是一个元素 ,“My Heading”是元素的内容。元素名称使用时不区分大小写

什么是元素属性?

元素属性是写在起始标签,或者单个标签中修饰对应元素的键值对;一个元素可以有多个属性,通过一个或多个空格分隔;属性不能书写在结束标签中

示例中,p元素具有两个属性,class和id

开始标签 元素内容 结束标签 元素属性

This is a par

This is a link

href="https://link.shangyexinzhi.com/url?a.htm" rel="nofollow"


什么是布尔属性? UI界面中输入框/复选框灰化不可用使用的情况,这类一般是使用disabled(布尔属性)标记,disabled属性阻止用户输入数据。 disable正常是不需要赋值的,直接声明即可,但也有研发通过分配空字符串或者将属性值设置为属性名称达到相同目的

Enter what you like: # 直接声明

HTML简介:https://www.w3cschool.cn/html/html-css-index.html

selenium API

根据定位元素的方式,selenium提供了很多API