UI自动化学习导图
2022-01-09 13:00:23 1 举报
AI智能生成
内容涵盖基本web端代码及appUI测试的导图。
作者其他创作
大纲/内容
Web基础知识
B/S架构
网页实现的基本技术【HTML,CSS,JAVASCRIPT】
html元素属性
class
id
style
title
css引入方式
使用内嵌方式
使用内部方式
使用外部方式
JS元素属性
在<script>中引入
Selenium掌握
pycharm中安装包文件
安装使用的浏览器
安装对应的浏览器驱动webdriver
涉及验证码,进行验证码锁定,放在war包的class文件夹下
常用命令
打开浏览器(一般选一即可)
webdriver.Firefox() 获得火狐浏览器驱动对象
webdriver.Edge() 获得微软ME浏览器驱动对象
webdriver.Chrome() 获得谷歌浏览器驱动对象
webdriver.Safari() 获得Safari浏览器驱动对象
访问网页
浏览器对象.get(url)
浏览器对象. maxmize_window() 浏览器窗口最大化
浏览器对象. minimize_window() 浏览器窗口最小化
浏览器对象.forward() 浏览器前进操作
浏览器对象.back() 浏览器后退操作
浏览器对象.queit() 关闭整个浏览器
浏览器对象.close() 关闭浏览器中当前活动窗口
web页面元素的操作
文件的命名
Business用来管理用户的行为模拟
common用来管理公共的脚本
testcases用来管理测试用例
testData用来管理测试数据
Config用来管理配置信息
元素的识别方法
find_element(s)_by_id() 根据属性ID进行唯一识别
find_element(s)_by_name() 根据属性name进行唯一识别
find_element(s)_by_class_name() 根据标签class进行唯一识别
find_element(s)_by_link() 根据标签链接文本进行识别
find_element(s)_by_partial_link() #根据标签链接部分文本进行识别
find_element(s)_by_css_selector() #根据css选择器进行识别
find_element(s)_by_xpath() #根据标签的绝对或者相对路径进行识别
find_element(s)_by_tag() #根据标签的名称进行识别
window弹框
switch_to.alert.accept() 点击弹框确认按钮
switch_to.alert.dismiss()点击弹框取消按钮
switch_to.alert.text 弹窗文案
switch_to.alert.send_keys('值')
Select下拉列表操作
select_by_visible_text() 根据列表元素的text信息进行选取
select_by_index() 根据列表元素的index序号进行选取
select_by_value() 根据列表元素的value序号进行选取
文件的导入
使用send_keys()语法输入文件地址(跳过windows系统操作)
K8.测试用例验证
检查各功能模块是否异常,常规框架为:登录页面,设置变量,调用模块,条件判定等等。
使用装饰器进行优化
K13.截图操作
命令:
1、save_screenshot(file) 保存
2、get_screenshot_as_file(file)
3、get_screenshot_as_png()
4、get_screenshot_as_base64()
1、save_screenshot(file) 保存
2、get_screenshot_as_file(file)
3、get_screenshot_as_png()
4、get_screenshot_as_base64()
鼠标键盘操作
准备工作
准备工作:
安装pyautogui #键盘模拟模块
导入from selenium.webdriver.common.action_chains import ActionChains#鼠标模块
导入from selenium.webdriver.common.keys import Keys #键盘模块
安装pyautogui #键盘模拟模块
导入from selenium.webdriver.common.action_chains import ActionChains#鼠标模块
导入from selenium.webdriver.common.keys import Keys #键盘模块
鼠标的操作命令:
ActionChains(self.dr).double_click(butObj).perform() # 对元素实行鼠标双击动作
ActionChains(self.dr).context_click(news).perform() #鼠标右击
ActionChains(self.dr).move_to_element(BaiduSeting).perform() #移动到元素上悬停
ActionChains(self.dr).double_click(butObj).perform() # 对元素实行鼠标双击动作
ActionChains(self.dr).context_click(news).perform() #鼠标右击
ActionChains(self.dr).move_to_element(BaiduSeting).perform() #移动到元素上悬停
Xpath定位补充
1、绝对路径定位模式
2、相对路径定位模式
3、路径+属性定位模式 //tagName[@属性=Value]的方式进行表示
4、路径+多属性定位模式 //tagName[@属性1=Value1 and @属性2=value2]的方式进行表示
5、父子属性定位模式 //父标签[属性表述/子标签[属性描述]]
6、根据子元素寻找父元素 //子标签[属性描述]/.. 或者使用parent::* 或者使用parent::标签名称 来寻找上一级
或者使用 preceding-sibling::标签名称来寻找同一级标签
或者使用 preceding-sibling::标签名称来寻找同一级标签
7、根据弟弟元素节点寻找哥哥元素节点 样式://弟弟元素标签/../哥哥元素标签 先找父元素,再找哥哥元素
8、根据哥哥元素节点寻找弟弟元素节点 样式:following::* 或者following::标签名称
9、链接文件匹配 样式://标签名[text()=链接文本]
10、模糊匹配 样式: //标签名[contains(text(),链接文本)]
或 //标签名[contains(@属性,属性值部分信息)]
或 //标签名[contains(@属性,属性值部分信息)]
CSS定位补充
1、单一属性定位
1、根据标签进行定位 样式为dr.find_elements_by_css_selector('button')[4].click()
2、根据id属性进行定位 样式:css_selector('#button').click()
3、class选择器定位 样式:css_selector('.form-control-verifycode').send_keys('0000') #验证码
4、其他属性定位 最基本的 ( '[name='loginpassword']' )
2、组合属性定位
1、id组合属性定位 ( 'input#username' ).send_keys('admin')
2、class组合属性定位 ( 'input.form-control-verifycode' ).send_keys('0000')
3、其他属性组合定位 ( 'input[name='loginpassword']' )
4、仅有属性名,没有值也可以 ( ' input[name]' )
5、两个其他属性组合定位 ( ' [type='password'][name='loginpassword'] ' )
3、层级属性定位
1、上级标签>下级标签 (#storedlist.table.table-responsive>tbody).text
POM操作
页面对象模型,属于一种涉及模式,用来统一维护管理web页面的元素对象
此章节引入了from selenum.webdriver.common.by import By 模块
IFrame操作
相关方法:
1、switch_to.frame(iframe) 切换到指定的iframe
2、switch_to.parent_frame(iframe) 切换到上一级的iframe
3、switch_to.default_content(iframe) 回到默认的iframe
1、switch_to.frame(iframe) 切换到指定的iframe
2、switch_to.parent_frame(iframe) 切换到上一级的iframe
3、switch_to.default_content(iframe) 回到默认的iframe
K14.多窗口操作
属性:
1、current_window_handle 当前窗口的句柄ID
2、current_url 当前窗口的URL地址
3、Window_handles 当前浏览器打开的窗口句柄列表
1、current_window_handle 当前窗口的句柄ID
2、current_url 当前窗口的URL地址
3、Window_handles 当前浏览器打开的窗口句柄列表
方法:
switch_to.window(handle) 根据窗口句柄进行窗口切换
switch_to.window(handle) 根据窗口句柄进行窗口切换
手机端APP自动化操作
ADB指令回顾
adb start-server 启动ADB服务
adb kill-server 停止ADB服务
adb devices 查看设备
adb -s 127.0.0.1:62001 shell 连接设备
adb -s 127.0.0.1:62001 shell getprop 查看设备系统配置参数
adb -s 127.0.0.1:62001 shell getprop ro.build.version.release 查看设备指定系统参数
dumpsys activity | grep Activity 启动应用,查看应用信息
appium环境以依赖
android SDK
JDK
夜深模拟器
Appium GUI版本
Pycharm中安装Appium-Python-Client
Appium 连接终端设备参数配置
platformName #操作系统类型 iOS, Android, or FirefoxOS
platformVersion #操作系统内核版本号,命令:adb shell getprop ro.build.version.release
deviceName #连接的设备名称,查看命令:adb devices
udid #设备ID
appPackage #应用的包名
appActivity #应用主类名,查看命令:adb shell dumpsys activity | findstr “类名关键词”
browserName #浏览器类型,测试web应用时需要配置该选项,如Firefox或Chrome等
platformVersion #操作系统内核版本号,命令:adb shell getprop ro.build.version.release
deviceName #连接的设备名称,查看命令:adb devices
udid #设备ID
appPackage #应用的包名
appActivity #应用主类名,查看命令:adb shell dumpsys activity | findstr “类名关键词”
browserName #浏览器类型,测试web应用时需要配置该选项,如Firefox或Chrome等
元素探查器(选用)
SDK自带的uiautomatorvier.bat
元素定位主要方法
1. find_element_by_id() #根据resource-id进行定位
2. find_element_by_accessibility_id() #根据content-desc进行定位
3. find_element_by_class_name() #根据class进行定位
4. find_element_by_xpath() #根据路径进行定位
5. find_element_by_android_uiautomator(UI元素描述) #该条具体延伸方法参照笔记内容。
2. find_element_by_accessibility_id() #根据content-desc进行定位
3. find_element_by_class_name() #根据class进行定位
4. find_element_by_xpath() #根据路径进行定位
5. find_element_by_android_uiautomator(UI元素描述) #该条具体延伸方法参照笔记内容。
0 条评论
下一页