登山则情满于山,观海则意溢于海。这篇文章主要讲述#yyds干货盘点# Selenium Web端自动化从入门到实践相关的知识,希望能为你提供帮助。
一、自动化测试概念
1、概念
java:TestNg
python:unittest
pytest
2、自动化测试可行性
二、selenium核心原理与机制
1、代码分析
需求:
(1)打开Chrome浏览器,在地址栏中输入百度的网址。
(2)在搜索输入框中输入关键词“自动化测试”并按Enter键。
(3)验证搜索结果页面的标题是否是“自动化测试_百度搜索”。
注意:把dirver放到本地的文件夹后,一定要配置到环境变量中
2、Selenium 1. 0的工作原理
Selenium 1. 0,又称SeleniumRC,
其中RC是Remote Control的缩写
Selenium RC服务器主要包括Seleniumcore,http proxy和
launcher三部分
3、Selenium 2. 0的工作原理
4、Selenium 3. 0的工作原理 2016
三、selenium安装
1、Selenium WebDriver
客户端API接口,测试人员通过调用这些接口(WebDriver源码),来访问浏览器驱动,浏览器驱动再访问浏览器
2、Selenium IDE
官网地址:??https://www.selenium.dev/??
Selenium IDE是一个浏览器插件,支持chrome浏览器和Firefox浏览器,可以将手动测试过程记录下来,并生成自动化测试脚本,可以实现回放。
使用方法
作用:以录屏的方式帮助异地开发重现bug
3、Selenim Grid
1)可以解决什么问题?
机,并安装所需的不同测览器。
2)Selenium Grid架构
四、Selenium开发环境搭建1、安装python
https://www.python.org/官网下载python
2、安装pycharm
??https://www.jetbrains.com/pycharm/download/#section=windows?? (使用社区版即可)
3、安装selenium
下载指定的selenium版本;
??https://pypi.org/project/selenium/??
解压文件;
使用cmd进入解压目录下执行命令:python
??setup.py??
install
pip installselenium
pip installselenium==指定版本号 如:pip install selenium==2.48.0
4、下载driver
五、元素定位基础知识
<
html>
<
head>
.......
<
/head>
<
body>
.......
<
/body>
<
/html>
1、HTML
<
html>
<
/html>
:
文档的根元素,所有的描述都在这里
<
head>
<
/head>
:
文档头信息,包含<
title>
<
/title>
、<
script>
<
/script>
、<
style>
<
/style>
标签
<
body>
<
/body>
:
文档正文,其信息会在浏览器中显示
可以包含文本标签,链接,图像标签,表格标签,框架标签等
2、Dom
一个页面是通过DOM构造、布局以及绘制页面三步完成
3、XML
XML指可扩展标记语言,与HTML类似,HTML最多是用来展示数据的,但是XML是为了
传输和存储数据而非显示数据
XPath是在XML文档中查找信息的一种语言,Xpath可以用来在XML文档中对元素和属性
进行遍历
虽然XPath是用来查找XML节点,但同样可以查找HTML文档中的节点,因为HTML和XML
结构类似
以//*[@id="su"]为例(百度一下按钮)
/html/body/div[1]/div[1]/div[5]/div/div/form/span[2]/input
4、元素定位的重要性
findElement()返回一个WebElement元素 findElements()
返回一个List,多个WebElement元素
六、Selenium实现元素定位Selenium提供了定位元素的API,这些方法都被定义在WebDriver类中,这些方法都以find开头
七、Selenium WebDriver属性
八、Selenium WebDriver方法
九、Selenium WebElement属性
【#yyds干货盘点# Selenium Web端自动化从入门到实践】
十、Selenium WebElement方法
十一、Selenium操作下拉列表
十二、Selenium鼠标和键盘操作
十三、元素等待
title_is
判断title是否出现
title_contains
判断title是否包含某些字符
presence_of_element_located
判断某个元素是否被加到了dom树里,并不代表该元素一定可见
visibility_of_element_located 判断某个元素是否被加到了dom树里并且可见,宽和高都大于0 visibility_of 判断元素是否可见,如果可见就返回这个元素
presence_of_all_elements_located 判断是否至少有1个元素存在于dom树中
visibility_of_any_elements_located 判断是否至少有1个元素在页面中可见
text_to_be_present_in_element
判断指定的元素中是否包含了预期的字符串
text_to_be_present_in_element_value 判断指定元素的属性值中是否包含了预期的字符串
frame_to_be_avaliable_and_switch_to_it 判断该frame是否可以switch进去
element_to_be_clickable 判断某个元素是否可见并且是可点击的
element_to_be_selected 判断某个元素是否被选中了,一般用在下拉列表
alert_is_present 判断页面上是否存在alert
十四、验证码的处理1、验证码在自动化测试过程中如何处理
使用pytesseract模块和Pillow模块解决 安装pytesseract模块
pip3
install
pytesseract 安装Pillow
pip3
install
Pillow
2、网站验证码解决思路
3、POM模式 Page Object Model
十五、Pytest框架1 、介绍:
pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高
2、
特点:
3、安装:pip install pytest
4、运行规则:
查找当前目录及其子目录下以test*.py或者*test.py的python文件
找到文件后,在文件中找到以test开头函数和方法并执行
5、编写规则:
6、pytest 参数化处理
7、fixture
8、使用pytest重构项目
语法:@pytest.mark.run(order=xx)值越小, 优先级越高
0 1
9、pytest用例执行顺序
十六、日志1、日志的作用
2、日志的级别
3、四大组件
组件名称
对应类名
功能描述
日志器
Logger
提供了应用程序可一直使用的接口
处理器
Handler
将logger创建的日志记录发送给合适的输出
过滤器
Filter
提供了更细粒度的控制工具来决定输出哪条日志,丢弃哪条日志
格式器
Formatter
决定日志记录的最终输出格式
import logging
import logging.handlers
import datetime
def get_logger():
logger = logging.getLogger(mylogger)
logger.setLevel(logging.DEBUG)
rf_handler = logging.handlers.
推荐阅读
- openstack的环境变量#私藏项目实操分享#
- openstack的命令行管理#私藏项目实操分享#
- #yyds干货盘点# web安全day12(PKI)
- 微信和QQ这么多群,该如何管理好友关系()
- openstack的日志#私藏项目实操分享#
- 22张图带你了解IP地址有什么作用
- #yyds干货盘点# Spring Boot的前世今生以及它和Spring Cloud的关系详解。
- Jenkins安装部署
- ES6学习 第二章 变量的解构赋值