背景
需要添加一个关键字,当元素存在时,就进行点击,当元素不存在时,则跳过直接往下执行
实现
在客户端代码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对应的目录,重启客户端即可。