PO框架【自动化测试】

2024-04-25 04:28
文章标签 框架 测试 自动化 po

本文主要是介绍PO框架【自动化测试】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对象:Tpshop商城

需求:更换头像

在这里插入图片描述

操作步骤:

个人信息–头像–上传图片–图片确认–确认保存

在这里插入图片描述

核心代码:

# 进入frame框架[不熟]
driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="layui-layer-iframe1"]'))
driver.find_element_by_xpath('//*[@id="filePicker"]/div[2]/input').send_keys('C:\\Users\\S3214\\Pictures\\Camera Roll\\boy.jpg')# 法1:直接定位“确认”按钮
driver.find_element_by_xpath('//*[@id="uploader"]/div[1]/div[3]/div[3]').click()
# 法2:【鼠标操作】双击该“确认”按钮
# double = driver.find_element_by_xpath("//*[@id='uploader']/div[1]/div[3]/div[3]")
sleep(5)  #注意设置等待时间!
# ActionChains(driver).double_click(double).perform()
driver.switch_to.default_content()

完整代码:

# coding:utf-8
from time import sleepfrom selenium import webdriver# 打开浏览器
from selenium.webdriver import ActionChainsdriver = webdriver.Chrome()#隐性等待
driver.implicitly_wait(10)# 打开网址
driver.get("http://localhost/index.php")# 打开登录页面
driver.get("http://localhost/index.php/Home/user/login.html")# 输入文字为了登陆成功
driver.find_element_by_xpath('//*[@id="username"]').send_keys('13800138006')
driver.find_element_by_xpath('//*[@id="password"]').send_keys('123456')
driver.find_element_by_xpath('//*[@id="verify_code"]').send_keys('8888')
driver.find_element_by_xpath('//*[@id="loginform"]/div/div[6]/a').click()# 校验用户是否正确
# name = driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/div[1]/div[2]/a[1]')
name = driver.find_element_by_class_name('mu-m-phone').text
if name == 'hello':print('登录成功')
else:print('账号不匹配,请查看:%s' % name)# 上传头像
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[1]/div/ul[4]/li[2]/a').click()
driver.find_element_by_id('preview').click()# 进入frame框架[不熟]
driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="layui-layer-iframe1"]'))
driver.find_element_by_xpath('//*[@id="filePicker"]/div[2]/input').send_keys('C:\\Users\\S3214\\Pictures\\Camera Roll\\boy.jpg')# 法1:直接定位“确认”按钮
driver.find_element_by_xpath('//*[@id="uploader"]/div[1]/div[3]/div[3]').click()
# 法2:【鼠标操作】双击该“确认”按钮
# double = driver.find_element_by_xpath("//*[@id='uploader']/div[1]/div[3]/div[3]")
sleep(5)  #注意设置等待时间!
# ActionChains(driver).double_click(double).perform()
driver.switch_to.default_content()sleep(5)
driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div[2]/div/div[2]/form/ul[5]/li[2]/div[3]/input').click()

法1:直接法

# 法1:直接定位“确认”按钮
driver.find_element_by_xpath('//*[@id="uploader"]/div[1]/div[3]/div[3]').click()

法2:鼠标事件(双击)

# 法2:【鼠标操作】双击该“确认”按钮
double = driver.find_element_by_xpath("//*[@id='uploader']/div[1]/div[3]/div[3]")
sleep(5)  #注意设置等待时间!
ActionChains(driver).double_click(double).perform()

知识点:

IFrame切换

driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="layui-layer-iframe1"]'))

switch_to.frame:切换到iFrame
switch_to.default_content():跳到最外层(切换到主窗口)
switch_to.parent_frame():切换到上一级父窗口

鼠标操作

Selenium工具中全局鼠标操作语法如下:

第1步:初始化ActionChians类(动作链条):actions=ActionChains(driver)
第2步:找到要操作的元素:find_element
第3步:调用鼠标操作方法:actions.move_to_element(element)
第4步:执行鼠标操作方法:actions.perform()

参考文章:selenium之鼠标操作详解

续写参考文章:自动化测试po模式是什么

这篇关于PO框架【自动化测试】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933689

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11