LuckyFrame添加自定义关键字ifclick,元素存在时才点击

LuckyFrameWeb测试平台(一款支持接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试的全纬度免费开源测试平台) 官网:luckyframe.cn 源码地址:https://gitee.com/seagull1985/LuckyFrameWeb 分布式测试:使用Web-Client的方式,Web端负责基本信息管理展示,Client负责用例执行,任意无限扩展客户端。 专业用例管理:自动化用例的专业管理方式,让您编写自动化用例更简单,直观。 质量管理:Web端不仅仅有用来管理自动化相关的模块,更可以做一些... 阅读详情

背景

需要添加一个关键字,当元素存在时,就进行点击,当元素不存在时,则跳过直接往下执行

实现

在客户端代码WebCaseExecution-》runWebStep下添加代码
在这里插入图片描述

// 判断当元素存在就点击
 if(operation.equals("ifclick")){
   // 设置页面加载最大时长1秒
   wd.manage().timeouts().pageLoadTimeout(1, TimeUnit.SECONDS);
   //设置页面JS加载最大超时时长
   wd.manage().timeouts().setScriptTimeout(1, TimeUnit.SECONDS);
   // 设置元素出现最大时长1秒
   wd.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);

    WebElement we = isElementExist(wd, property, propertyValue);
	if(null==we){
      caselog.insertTaskCaseLog(taskid, caseId, "对象不存在,ifclick不需要进行点击", "info", String.valueOf(stepno), "");
      LogUtil.APP.info("获取到的值是【false】,元素不存在或者未显示,无需处理");
                        return "获取到的值是【false】,元素不存在或者未显示,无需处理";
       }

     if(we.isDisplayed()){
         we.click();
         result = "ifclick点击对象...【对象定位属性:" + property + "; 定位属性值:" + propertyValue + "】";
         LogUtil.APP.info("if元素存在,ifclick点击对象...【对象定位属性:{}; 定位属性值:{}】", property, propertyValue);
         caselog.insertTaskCaseLog(taskid, caseId, "对象存在,ifclick进行点击", "info", String.valueOf(stepno), "");
         return result;
         }

     // 设置页面加载最大时长1秒
     wd.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
     //设置页面JS加载最大超时时长
     wd.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS);
     // 设置元素出现最大时长1秒
      wd.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

      result = "ifclick点击对象...【对象定位属性:" + property + "; 定位属性值:" + propertyValue + "】";
      LogUtil.APP.info("if元素存在但未显示,ifclick跳过...【对象定位属性:{}; 定位属性值:{}】", property, propertyValue);
      caselog.insertTaskCaseLog(taskid, caseId, "对象存在但未显示,ifclick跳过", "info", String.valueOf(stepno), "");
      return result;

   }

数据库插入关键字

INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ('2059', '56', 'ifclick判断元素存在就点击', 'ifclick', 'testmanagmt_casestep_uioperation', '', 'info', 'Y', '0', 'admin', '2019-02-13 10:27:32', 'luckyframe', '2019-02-13 10:27:32', '判断元素存在就点击');

替换class文件

将WebCaseExecution.java文件重新编译后,替换到LuckyFrameClient对应的目录,重启客户端即可。

LuckyFrame配置 luckyFrame用户手册项目部署 - 用户手册 - 接口测试平台&自动化测试工具 下载编译好的文件 下载编译包不需要搭建开发环境,但也需要安装jdk。 服务端修改数据库配置 详细见用户手册 客户端修改配置 新建数据库 打开mysql终端,新建数据库luckyframe create database luckyframe; 服务端运行 Jar文件为编译好的Jave项目文件,可以直接运行。在jar文件所在目录地址栏输入cmd,回车 java -j... 阅读详情

相关推荐

LuckyFrame测试平台 v3.3beta

为您提供LuckyFrame测试平台下载,LuckyFrame测试平台是一款开源的测试平台,最大的特点是全纬度覆盖了接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试,测试关键字驱动也很大程度上解决了测试同学代码基础弱的问题。同时也集成了质量管理相关的一些功能,解决QA的日常工作中,项目过程数据的收集问题,并能展示一些简单质量报表。LuckyFrame功能特点:1、分布式测试:使用Web-Client的方式,Web端负责

LuckyFrame添加显式等待关键字

背景 在LuckyFrame当前的版本中,仅有timeout隐式等待和Wait强制等待。在实际的用例编写过程中,需要等待元素显示或者元素消失时(如等待loading浮层消失),不够方便灵活,很容易出现等待时间不够或者浪费时间的情况,所以添加一个自定义的显示等待关键字。 代码实现 可在LukcyFrameClient项目的 EncapsulateOperation类-》objectOperation方法的switch下添加显示等待关键字代码。 case "waitvisibility":

Jerelli的博客 602

1. 基于STM32的1.28寸圆形IPS屏(GC9A01)驱动移植实战:软件SPI与硬件SPI双方案详解

本文详细介绍了如何在STM32平台上为1.28寸圆形IPS屏(GC9A01驱动芯片)移植驱动程序,涵盖软件SPI与硬件SPI两种实现方案。内容从引脚定义、工程搭建、GPIO配置到SPI外设初始化逐步详解,并提供了完整的测试代码,帮助开发者根据项目需求(灵活性或性能)选择合适的通信方式,快速点亮屏幕并集成到智能手表等嵌入式项目中。

weixin_42300144的博客 203

LuckyFrame使用手册

开源自动化测试平台使用手册使用手册系统介绍1. 系统管理2. 系统监控3. 系统工具4. 测试管理5. 测试执行语法手册1. 测试驱动(接口)自动化语法说明2. Web UI自动化语法说明3. 移动端自动化语法说明4. HTTP&Socket模板自动化语法说明5. 骤动作关键字示例手册1. API接口自动化示例2. APP自动化示例 使用手册 本手册是测试人员搭建环境以及使用系统的指导教程,当你有一定的计算机基础且了解一点环境部署方面的知识,那么阅读完此手册后,可以将测试平台的环境搭建运行起来并且应

xiaomi_321的博客 1万+

Python邮件自动化实战:基于imaplib和email库的高效邮件管理方案

本文详细介绍了如何使用Python的imaplib和email库实现高效邮件自动化管理。通过实战案例展示自动收取、解析邮件、下载附件等核心功能,帮助开发者快速构建企业级邮件处理系统,大幅提升工作效率。特别适合需要处理大量邮件的金融、数据分析等场景。

weixin_30500105的博客 618

汇付天下聚合支付自助接入全流程详解(附JAVA/非JAVA环境配置指南)

本文详细解析了汇付天下聚合支付的自助接入全流程,涵盖JAVA与非JAVA环境下的实战配置。从接入前准备、架构理解、密钥获取,到JAVA SDK集成、核心支付代码拆解,以及Node.js/Python等环境的裸接口对接、签名生成与异步通知处理,提供了完整的避坑指南和上线检查清单,帮助开发者高效、稳健地完成支付系统集成。

wdx01234567的博客 510

luckyframe--使用文档

一、部门管理 因为新增项目时,需要设置归属部门。所以需要先进行部门管理 可以根据公司部情况,设置部门管理内容,包括:新增/修改/删除,折叠及展开功能 系统管理 —> 部门管理,进行设置 二、项目管理 新增项目,需要设置项目名称、归属部门,项目标识三个信息。(譬如:一户一案项目,行业服务管理平台,拨测平台等) 还支持修改、删除操作 系统管理 —> 项目管理,进行设置 删除项目 a.需要校验项目是否绑定了客户端(在客户端管理菜单设置),绑定了客户端的情况下不允许删除项目。 b.需要校验项目是否

wangying202的博客 2396

STM32中RS485方向控制引脚应用详解

深入解析STM32如何通过GPIO控制RS485通讯的方向引脚,实现半双工通信的精准切换。重点讲解硬件连接与软件时序配合,确保rs485通讯稳定可靠,适用于工业控制等实际场景。

weixin_42451850的博客 398

JavaScript If...Else 语句

今天给大家分享一下js的条件If...Else 语句,条件语句是我们学习js不可缺少的部分,我们使用页面时会发生很多不同的事件,我们需要判断我们需要什么,这时语句判断它的作用就体验出来了! 一个简单的例子比如说我们需要判断用户年龄是否成年! 话不多说直接看代码: <body> <inputtype="number"id="input"><!--接受用户输入的年龄--> <buttononclick="bot(...

lysliuyue的博客 922

使用TensorFlow Lite Micro流程记录(带源码)

记录如何使用tensorflow lite micro,以及期间解决的问题

ZhaoDongyu_AK47的博客 6214

DJI O2协议物理层逆向工程解析:揭开无人机通信的神秘面纱

DJI的O2协议是其OcuSync传输技术的最新演进,应用于Mini 2、Mavic Air 2、Mavic Air 2s和Mavic 3等无人机模型。这种协议结合了多种先进无线通信技术,能够在远距离提供稳定可靠的低延迟连接。O2协议物理层(PHY)是OSI模型的最底层,负责在物理媒介上传输原始数据比特流。它定义了电气特性、调制方式、编码方案、数据传输速率和同步机制等。DJI O2协议的物理层逆向工程是一个复杂但极具价值的领域。

QQ_778132974的博客 2385

[uni-app基础]使用v-if和@click事件绑定,控制页面元素view组件的显示与隐藏

通过data-vid自定义需要控制显示和隐藏的view组件id,此处为“0”,下一个则为“1",以此类推,(为方便演示此处用比较机械的方法。如果需要控制显示和隐藏的组件很多,则需要优化此处代码)

辣笔小茶的博客 2193

基于STM32单片机的智能分拣系统

基于STM32单片机的智能分拣系统是一种高效、精准的自动化分拣解决方案,适用于物流、仓储、制造业等领域。该系统利用STM32单片机作为核心控制器,结合传感器技术、电机控制算法和通信模块,实现对物品的自动识别、分类和分拣。通过智能化的设计,该系统能够大幅提高分拣效率,降低人工成本,并减少错误率。基于STM32单片机的智能分拣系统是一种高效、精准、低成本的自动化解决方案,能够广泛应用于物流、制造、环保等领域。

qq_62634009的博客 1939

二、Vue常用属性

1.遍历 v-for <li v-for="(item,key) in list" v-bind:key="key"> {{item}} </li> 2.取值 {{***}} <h2>你好Vue---{{msg}}</h2> 3.DOM元素绑定数据 v-bind 或 : <div v-bind:title="title"...

panchang199266的博客 501

YOLO11 改进系列 | 引入2023年 MLCA 的 C3k2_MLCA 模块,近零参数开销的本地-全局通道注意力,适合检测与分割特征增强

本文提出将MLCA(混合局部通道注意力)模块嵌入YOLOv11的C3k2框架中,形成C3k2_MLCA改进结构。该模块通过5×5局部池化和1×1全局池化双路融合,结合ECA式Conv1d生成通道注意力,在几乎不增加参数量的前提下(仅增加66个参数),实现了局部空间信息与全局通道统计的联合建模。相比传统SE和ECA注意力,MLCA保留了空间分布信息,更适合实例分割等需要精细定位的任务。实验表明改进后模型参数量仅增加0.002%,计算量基本不变,是一种高效的注意力增强方案。

qq_44224801的博客 92

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

vue.js 学习第一天:v-if用法,@click切换以及过滤器使用和计算

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="...

weixin_34403693的博客 1310

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Vue根据条件添加click事件

需求:根据特定条件,增加或者去掉click事件(例如:clickFlag == true时,添加click事件;clickFlag == false时,去掉click事件;) 解决方法: 方式一:在绑定事件中直接添加标示量clickFlag <div @click="clickFlag && addGoodsHandler()"> 添加产品 </div...

weixin_34138139的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java 检测点击事件控件_iCheck控件ifClicked和ifChanged事件的讨论

前端环境:Jquery+Bootstrap,checkbox使用了iCheck关于iCheck控件点击事件的处理,其中有两个相关事件ifClicked和ifChanged经过实验发现,ifClicked是点击的时候触发,此时check状态还没变化ifChanged是状态变化后触发。也就是说,当点击checkbox的时候,触发顺序是:ifClicked事件-->checkbox check状态...

weixin_33571513的博客 1487

由v-if控制的button click事件没有响应

由v-if控制的button click事件没有响应

johnhuster的专栏 5228

uniapp中两个单页面v-if的和click点击事件配合使用tab切换案例

如果看的乱去掉注释就一目了然了 <template> <view class="page"> <view class="content flex" > <!-- 左边 --> <view class="left" > <!-- @click="list()" 标签设置点击事件 --> <view class="left_title" @click="list()"> 左边标题

m0_49714202的博客 1849

Appium学习17-2:元素定位——id定位思考

思考 如果安装的版本最新的包,或者升级到了最新的版本,则启动后没有升级弹窗元素该如何处理? 跳过引导页面首次启动和非首次启动场景该如何处理? 方案探索1——if条件判断 有同学可能想到用if来做条件判断,判断元素是否存在,存在则点击,不存在则跳过。 kyb_cancel_skip_if.py from appium import webdriver desired_caps={} ...

up1292的博客 279

Selenium 判断元素是否存在,是否可点击,是否被选中,

selenium判断元素是否存在,是否可点击,是否被选中

泡泡龙的博客 2万+

Python自动化--5. if判断语句

5. if判断语句 In [1]: n =input("请输入一个数字:") 请输入一个数字:18 In [2]: n = int(n) In [3]: type(n) Out[3]: int In [4]: if n == 18: ...: print("猜对了!") ...: print("相等") ...: 猜对了! 相等 In [5]: n = 19 In [6]: if n == 19: ...: print("相等") ...:

weixin_55985097的博客 1185

idea javaee项目 导入_码云GVP项目开源测试平台 LuckyFrameWeb 试用

一、简介码云的GVP项目——LuckyFrame测试平台是一款采用 AGPL 3.0开源协议的测试平台,作者(Seagull)。目前LuckyFrame已做到全纬度覆盖了接口自动化、WEB UI自动化、APP自动化,并且可以支持分布式测试。平台采用测试关键字驱动方式,可以简单高效的实现测试自动化,这在很大程度上解决了测试同学代码基础薄弱的问题。同时也集成了质量管理相关的一些功能,适用于QA的日常...

weixin_39802969的博客 329
上一篇: 解决pyinstaller打包mayavi出现unhandled exception:traitsui.toolkits的问题
下一篇: 【ZooKeeper to KRaft Migration】kafka 3.4版本zookeeper数据迁移到kraft
Jerelli
博客等级 码龄15年 28粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值