UI自动化测试笔记1
时间:2021-08-09
本文章向大家介绍UI自动化测试笔记1,主要包括UI自动化测试笔记1使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.selenium的环境搭建
(1)selenium安装成功
(2)查看chrome浏览器的版本
(3)淘宝源下载webdriver驱动程序包(下载跟浏览器版本相同的webdriver)
(4)下载的webdriver放在python的安装目录下
2、元素定位的8个方式,以及多个元素定位方式(tag_name),最好有截图,有案例,结合百度搜索
(1)通过ID来定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys("猪猪崽")
t.sleep(6)
(2)通过name来定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_name('wd').send_keys("猪猪崽")
t.sleep(6)
(3)通过class_name来定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_class_name('s_ipt').send_keys("猪猪崽")
t.sleep(6)
(4)xpath的定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("猪猪崽")
t.sleep(6)
(5)css的定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_css_selector('#kw').send_keys("猪猪崽")
t.sleep(6)
(6)LINK_TEXT的定位
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('地图').click()
t.sleep(6)
(7)PARTIAL_LINK_TEXT的定位'''
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_partial_link_text("地图").click()
t.sleep(6)
(8)tag_name(演示多个元素的定位方式)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
tag=driver.find_elements_by_tag_name('input')
tag[7].send_keys("我爱中国")
t.sleep(6)
driver.quit()
3.元素定位方法的案例实战
(1)sina邮箱
登录界面:
driver=webdriver.Chrome()
driver.get('https://mail.sina.com.cn/')
#输入邮箱
driver.find_element_by_id('freename').send_keys('liuxun@163.com')
t.sleep(6)
#输入密码
driver.find_element_by_id('freepasword').send_keys('liuxun')
t.sleep(6)
注册界面:
driver=webdriver.Chrome()
#浏览器最大化
driver.maximize_window()
driver.get('https://mail.sina.com.cn/register/regmail.php')
#邮箱地址
driver.find_element_by_name('email').send_keys('liuxun@0223')
t.sleep(2)
#邮箱密码
driver.find_element_by_name('psw').send_keys('liuxun')
t.sleep(2)
#确认密码
driver.find_element_by_name('npsw').send_keys('liuxun')
t.sleep(2)
#手机号码
driver.find_element_by_name('phonenumber').send_keys('15591867378')
t.sleep(7)
driver.quit()
(2)网易
登录界面:
driver=webdriver.Chrome()
driver.get('https://mail.163.com/')
#输入邮箱账号或手机密码
driver.find_element_by_id('auto-id-1628499135847').send_keys('liuxun0223@163.com')
t.sleep(6)
#输入密码
driver.find_element_by_id('auto-id-1628499135830').send_keys('liuxun')
t.sleep(6)
注册界面:
driver=webdriver.Chrome()
#浏览器最大化
driver.maximize_window()
driver.get('https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail')
#邮箱地址
driver.find_element_by_class_name('username').send_keys('liuxun0223')
t.sleep(2)
#邮箱密码
driver.find_element_by_class_name('password').send_keys('liuxun0617')
t.sleep(2)
t.sleep(2)
#手机号码
driver.find_element_by_class_name('phone').send_keys('15591867378')
t.sleep(7)
driver.quit()
4.结合函数对元素定位方法封装
(1)通过ID来封装
def ID(driver,content):
'''
:param driver: webdriver实例化后的对象
:param content: 被定位的元素属性信息
:return:
'''
return driver.find_element_by_id(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
ID(driver,'kw').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(2)通过name来封装
def name(driver,content):
return driver.find_element_by_name(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
name(driver,'wd').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(3)通过className来封装
def className(driver,content):
return driver.find_element_by_class_name(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
className(driver,'s_ipt').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(4)通过tagName来封装
def tagName(driver,content,index):
return driver.find_elements_by_tag_name(content)[index]
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
tagName(driver,'input',7).send_keys('tags name')
t.sleep(3)
driver.quit()
(5)通过xpath来封装
def xpath(driver,content):
return driver.find_element_by_xpath(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
xpath(driver,'//*[@id="kw"]').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(6)通过css来封装
def css(driver,content):
return driver.find_element_by_css_selector(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
css(driver,'#kw').send_keys('珍珠崽子')
t.sleep(3)
driver.quit()
(7)通过linkText来封装
def linkText(driver,content):
return driver.find_element_by_link_text(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
linkText(driver,'地图').click()
t.sleep(3)
driver.quit()
(8)通过partialLinkText来封装
def partialLinkText(driver,content):
return driver.find_element_by_partial_link_text(content)
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
partialLinkText(driver,'地图').click()
t.sleep(3)
driver.quit()
5.webdriver的浏览器属性的方法应用
(1)send_keys(value):模拟按键输入
(2)click():单击元素
(3)maximize_window():浏览器窗口最大化
(4)back():模拟后退按钮
(5)forward():模拟前进按钮
(6)driver quit():关闭浏览器并且退出驱动程序
(7)driver close():关闭浏览器
(8)driver=webdriver.chrome():选择要使用的浏览器
(9)driver.current_url:获取当前页面的Url地址
(10)driver page_source:获取当前页面的源码
原文地址:https://www.cnblogs.com/liuxun0223/p/15119901.html
- 使用Python完成你的第一个学习项目
- CA,给了数据库,给了机器,为啥也扩不了容?
- 如何使用Anaconda设置机器学习和深度学习的Python环境
- MQ,互联网架构解耦神器
- 预测随机机器学习算法实验的重复次数
- 服务化了,没想到耦合更加严重?
- 如何在Python中扩展LSTM网络的数据
- 使用Keras的Python深度学习模型的学习率方案
- 全球电脑手机无一幸免,英特尔CPU“漏洞事件”到底多严重?
- 评估Keras深度学习模型的性能
- Python机器学习的练习二:多元线性回归
- 熔断器 Hystrix 源码解析 —— 命令合并执行
- Python机器学习的练习一:简单线性回归
- Dubbo源码解析 —— zookeeper连接
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法