ui测试前后端问题修复

This commit is contained in:
2025-05-27 15:14:40 +08:00
parent 64b57fc3ec
commit a3c140db47
4 changed files with 202 additions and 164 deletions

View File

@@ -52,5 +52,5 @@ public class AssertionQO {
private String isFailedAbort; private String isFailedAbort;
/**是否禁用 0否 1是*/ /**是否禁用 0否 1是*/
private String isDisabled; private Integer isDisabled;
} }

View File

@@ -41,7 +41,7 @@ public class DataExtractionQO {
private String elementAttribute; private String elementAttribute;
/**是否禁用 0否 1是 */ /**是否禁用 0否 1是 */
private String isDisabled; private Integer isDisabled;
} }

View File

@@ -1006,7 +1006,7 @@ public class UiSceneStepsServiceImpl implements IUiSceneStepsService {
*/ */
private List<UiHighSettingVO> extractafterSetting(List<UiHighSettingVO> settings) { private List<UiHighSettingVO> extractafterSetting(List<UiHighSettingVO> settings) {
return settings.stream() return settings.stream()
.filter(e -> "2".equals(e.getSettingType()) &&0 == e.getIsDisabled()) .filter(e -> "2".equals(e.getSettingType()) && 1 == e.getIsDisabled())
.collect(Collectors.toList()); // 返回默认设置 .collect(Collectors.toList()); // 返回默认设置
} }

View File

@@ -73,10 +73,8 @@
<el-input-number v-model="item.awateTime" :min="0"></el-input-number> <el-input-number v-model="item.awateTime" :min="0"></el-input-number>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"> <el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
</el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="beforeDelete(index)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="beforeDelete(index)"></el-button>
</div> </div>
</div> </div>
<!-- 数据提取 --> <!-- 数据提取 -->
@@ -91,10 +89,8 @@
<el-input v-model="item.name" class="select" @click.native.stop></el-input> <el-input v-model="item.name" class="select" @click.native.stop></el-input>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="item.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="beforeDelete(index)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="beforeDelete(index)"></el-button>
</div> </div>
</div> </div>
</template> </template>
@@ -137,10 +133,8 @@
</el-tooltip> </el-tooltip>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="row.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="row.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="beforeWindowDelete(index, index1)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="beforeWindowDelete(index, index1)"></el-button>
</div> </div>
</div> </div>
</div> </div>
@@ -167,10 +161,8 @@
</el-tooltip> </el-tooltip>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="row.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="row.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="beforeElemetDelete(index, index1)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="beforeElemetDelete(index, index1)"></el-button>
</div> </div>
</div> </div>
<!-- 普通对象(store) --> <!-- 普通对象(store) -->
@@ -184,26 +176,30 @@
<el-option key="2" label="元素定位" value="2"></el-option> <el-option key="2" label="元素定位" value="2"></el-option>
</el-select> </el-select>
<!-- 元素对象 --> <!-- 元素对象 -->
<div v-show="row.operateObject != '2'" class="operateObject-wrap"> <div v-show="row.operateObject === '1'" class="operateObject-wrap">
<el-select v-model="row.operateGroupId" class="select" @change="getOperateGroup"> <el-select v-model="row.operateGroupId" class="select" @change="handleBeforeDataExtractionGroupChange(row)" placeholder="请选择元素组">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
:value="item.id"></el-option>
</el-select> </el-select>
<el-select v-model="row.operateElementId" class="select"> <el-select v-model="row.operateElementId" class="select" placeholder="请选择元素">
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option v-for="item in elementList" :key="item.id" :label="item.name" :value="item.id"></el-option>
:value="item.id"></el-option>
</el-select> </el-select>
</div> </div>
<!-- 元素定位 --> <!-- 元素定位 -->
<div v-show="row.operateObject === '2'" class="operateObject-wrap"> <div v-show="row.operateObject === '2'" class="operateObject-wrap">
<el-select v-model="row.operateLocType" class="select" @change="getOperateLoc"> <el-select v-model="row.operateLocType" class="select">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option label="id" value="id"></el-option>
:value="item.id"></el-option> <el-option label="name" value="name"></el-option>
</el-select> <el-option label="className" value="className"></el-option>
<el-select v-model="row.operateLocValue" class="select"> <el-option label="tagName" value="tagName"></el-option>
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option label="linkText" value="linkText"></el-option>
:value="item.id"></el-option> <el-option label="partialLinkText" value="partialLinkText"></el-option>
<el-option label="css" value="css"></el-option>
<el-option label="xpath" value="xpath"></el-option>
<el-option label="table" value="table"></el-option>
<el-option label="value" value="value"></el-option>
<el-option label="index" value="index"></el-option>
</el-select> </el-select>
<el-input v-model="row.operateLocValue" placeholder="请输入元素名称" class="select"></el-input>
</div> </div>
</div> </div>
</div> </div>
@@ -232,10 +228,8 @@
<el-input-number v-model="item.awateTime" :min="0"></el-input-number> <el-input-number v-model="item.awateTime" :min="0"></el-input-number>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"> <el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
</el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="afterDelete(index)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="afterDelete(index)"></el-button>
</div> </div>
</div> </div>
<!-- 数据提取 --> <!-- 数据提取 -->
@@ -250,10 +244,8 @@
<el-input v-model="item.name" class="select" @click.native.stop></el-input> <el-input v-model="item.name" class="select" @click.native.stop></el-input>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="item.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="afterDelete(index)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="afterDelete(index)"></el-button>
</div> </div>
</div> </div>
</template> </template>
@@ -296,10 +288,8 @@
</el-tooltip> </el-tooltip>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="row.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="row.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="afterWindowDelete(index, index1)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="afterWindowDelete(index, index1)"></el-button>
</div> </div>
</div> </div>
</div> </div>
@@ -326,10 +316,8 @@
</el-tooltip> </el-tooltip>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="row.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="row.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="afterElemetDelete(index, index1)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="afterElemetDelete(index, index1)"></el-button>
</div> </div>
</div> </div>
<!-- 普通对象(store) --> <!-- 普通对象(store) -->
@@ -343,26 +331,30 @@
<el-option key="2" label="元素定位" value="2"></el-option> <el-option key="2" label="元素定位" value="2"></el-option>
</el-select> </el-select>
<!-- 元素对象 --> <!-- 元素对象 -->
<div v-show="row.operateObject != '2'" class="operateObject-wrap"> <div v-show="row.operateObject === '1'" class="operateObject-wrap">
<el-select v-model="row.operateGroupId" class="select" @change="getOperateGroup"> <el-select v-model="row.operateGroupId" class="select" @change="handleAfterDataExtractionGroupChange(row)" placeholder="请选择元素组">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
:value="item.id"></el-option>
</el-select> </el-select>
<el-select v-model="row.operateElementId" class="select"> <el-select v-model="row.operateElementId" class="select" placeholder="请选择元素">
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option v-for="item in elementList" :key="item.id" :label="item.name" :value="item.id"></el-option>
:value="item.id"></el-option>
</el-select> </el-select>
</div> </div>
<!-- 元素定位 --> <!-- 元素定位 -->
<div v-show="row.operateObject === '2'" class="operateObject-wrap"> <div v-show="row.operateObject === '2'" class="operateObject-wrap">
<el-select v-model="row.operateLocType" class="select" @change="getOperateLoc"> <el-select v-model="row.operateLocType" class="select">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option label="id" value="id"></el-option>
:value="item.id"></el-option> <el-option label="name" value="name"></el-option>
</el-select> <el-option label="className" value="className"></el-option>
<el-select v-model="row.operateLocValue" class="select"> <el-option label="tagName" value="tagName"></el-option>
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option label="linkText" value="linkText"></el-option>
:value="item.id"></el-option> <el-option label="partialLinkText" value="partialLinkText"></el-option>
<el-option label="css" value="css"></el-option>
<el-option label="xpath" value="xpath"></el-option>
<el-option label="table" value="table"></el-option>
<el-option label="value" value="value"></el-option>
<el-option label="index" value="index"></el-option>
</el-select> </el-select>
<el-input v-model="row.operateLocValue" placeholder="请输入元素名称" class="select"></el-input>
</div> </div>
</div> </div>
</div> </div>
@@ -383,10 +375,8 @@
<el-input v-model="item.name" class="select" @click.native.stop></el-input> <el-input v-model="item.name" class="select" @click.native.stop></el-input>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="item.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="item.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="afterDelete(index)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="afterDelete(index)"></el-button>
</div> </div>
</div> </div>
</template> </template>
@@ -401,7 +391,7 @@
<el-button type="primary" plain @click="addAfterAssionQOList(index)" <el-button type="primary" plain @click="addAfterAssionQOList(index)"
style="margin-left: 10px;">添加</el-button> style="margin-left: 10px;">添加</el-button>
<!-- 弹窗文本 --> <!-- 弹窗文本 -->
<div v-if="item.assertionQOList.popupTexts.length > 0" class="information"> <div v-if="item.assertionQOList && item.assertionQOList.popupTexts && item.assertionQOList.popupTexts.length > 0" class="information">
<div>弹窗文本</div> <div>弹窗文本</div>
<div v-for="(content, index2) in item.assertionQOList.popupTexts" class="time"> <div v-for="(content, index2) in item.assertionQOList.popupTexts" class="time">
<div class="time-left"> <div class="time-left">
@@ -412,17 +402,15 @@
<el-input v-model="content.expectations" placeholder="请输入期望弹窗文本"></el-input> <el-input v-model="content.expectations" placeholder="请输入期望弹窗文本"></el-input>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="content.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="content.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="deleteAssertion('1', index, index2)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="deleteAssertion('1', index, index2)"></el-button>
</div> </div>
</div> </div>
</div> </div>
<!-- 元素断言 --> <!-- 元素断言 -->
<div v-if="item.assertionQOList.elementAssertions.length > 0" class="information"> <div v-if="item.assertionQOList && item.assertionQOList.elementAssertions && item.assertionQOList.elementAssertions.length > 0" class="information">
<div>元素断言</div> <div>元素断言</div>
<div v-for="(content, index2) in item.elementAssertions.popupTexts" class="time"> <div v-for="(content, index2) in item.assertionQOList.elementAssertions" class="time">
<div class="time-left"> <div class="time-left">
<div class="operateObject-wrap"> <div class="operateObject-wrap">
<el-select v-model="content.operateObject" class="select"> <el-select v-model="content.operateObject" class="select">
@@ -430,117 +418,117 @@
<el-option key="2" label="元素定位" value="2"></el-option> <el-option key="2" label="元素定位" value="2"></el-option>
</el-select> </el-select>
<!-- 元素对象 --> <!-- 元素对象 -->
<div v-show="content.operateObject != '2'" class="operateObject-wrap"> <div v-show="content.operateObject === '1'" class="operateObject-wrap">
<el-select v-model="content.operateGroupId" class="select" @change="getOperateGroup"> <el-select v-model="content.operateGroupId" class="select" @change="handleElementAssertionGroupChange(content)" placeholder="请选择元素组">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
:value="item.id"></el-option>
</el-select> </el-select>
<el-select v-model="content.operateElementId" class="select"> <el-select v-model="content.operateElementId" class="select" placeholder="请选择元素">
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option v-for="item in elementList" :key="item.id" :label="item.name" :value="item.id"></el-option>
:value="item.id"></el-option>
</el-select> </el-select>
</div> </div>
<!-- 元素定位 --> <!-- 元素定位 -->
<div v-show="content.operateObject === '2'" class="operateObject-wrap"> <div v-show="content.operateObject === '2'" class="operateObject-wrap">
<el-select v-model="content.operateLocType" class="select" @change="getOperateLoc"> <el-select v-model="content.operateLocType" class="select">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option label="id" value="id"></el-option>
:value="item.id"></el-option> <el-option label="name" value="name"></el-option>
</el-select> <el-option label="className" value="className"></el-option>
<el-select v-model="content.operateLocValue" class="select"> <el-option label="tagName" value="tagName"></el-option>
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option label="linkText" value="linkText"></el-option>
:value="item.id"></el-option> <el-option label="partialLinkText" value="partialLinkText"></el-option>
<el-option label="css" value="css"></el-option>
<el-option label="xpath" value="xpath"></el-option>
<el-option label="table" value="table"></el-option>
<el-option label="value" value="value"></el-option>
<el-option label="index" value="index"></el-option>
</el-select> </el-select>
<el-input v-model="content.operateLocValue" placeholder="请输入元素名称" class="select"></el-input>
</div> </div>
</div> </div>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="content.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="content.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="deleteAssertion('2', index, index2)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="deleteAssertion('2', index, index2)"></el-button>
</div> </div>
<div class="time-left"> <div class="time-left">
<el-select v-model="content.assertionMode"> <el-select v-model="content.assertionMode">
<el-option key="1" lable="元素被选中(Checked)" value="1"></el-option> <el-option key="1" label="元素被选中(Checked)" value="1"></el-option>
<el-option key="2" lable="元素可编辑(Editable)" value="2"></el-option> <el-option key="2" label="元素可编辑(Editable)" value="2"></el-option>
<el-option key="3" lable="元素存在(ElementPresent)" value="3"></el-option> <el-option key="3" label="元素存在(ElementPresent)" value="3"></el-option>
<el-option key="4" lable="元素不存在(ElementNotPresent)" value="4"></el-option> <el-option key="4" label="元素不存在(ElementNotPresent)" value="4"></el-option>
<el-option key="5" lable="元素未被选中(NotChecked)" value="5"></el-option> <el-option key="5" label="元素未被选中(NotChecked)" value="5"></el-option>
<el-option key="6" lable="元素不可编辑(NotEditable)" value="6"></el-option> <el-option key="6" label="元素不可编辑(NotEditable)" value="6"></el-option>
<el-option key="7" lable="元素文本不等于期望(NotText)" value="7"></el-option> <el-option key="7" label="元素文本不等于期望(NotText)" value="7"></el-option>
<el-option key="8" lable="元素文本等于期望(Text)" value="8"></el-option> <el-option key="8" label="元素文本等于期望(Text)" value="8"></el-option>
<el-option key="9" lable="元素值等于期望(Value)" value="9"></el-option> <el-option key="9" label="元素值等于期望(Value)" value="9"></el-option>
<el-option key="10" lable="元素文本包含期望(InText)" value="10"></el-option> <el-option key="10" label="元素文本包含期望(InText)" value="10"></el-option>
<el-option key="11" lable="元素文本不包含期望(NotInText)" value="11"></el-option> <el-option key="11" label="元素文本不包含期望(NotInText)" value="11"></el-option>
</el-select> </el-select>
<el-input v-model=content.expectations placeholder="请输入期望值"></el-input> <el-input v-model="content.expectations" placeholder="请输入期望值"></el-input>
</div> </div>
</div> </div>
</div> </div>
<!-- 下拉框 --> <!-- 下拉框 -->
<div v-if="item.assertionQOList.dropdownBoxes.length > 0" class="information"> <div v-if="item.assertionQOList && item.assertionQOList.dropdownBoxes && item.assertionQOList.dropdownBoxes.length > 0" class="information">
<div>下拉框</div> <div>下拉框</div>
<div v-for="(content, index2) in item.dropdownBoxes.popupTexts"> <div v-for="(content, index2) in item.assertionQOList.dropdownBoxes" class="time">
<div class="time"> <div class="time-left">
<div class="time-left"> <div class="operateObject-wrap">
<div class="operateObject-wrap"> <el-select v-model="content.operateObject" class="select">
<el-select v-model="content.operateObject" class="select"> <el-option key="1" label="元素对象" value="1"></el-option>
<el-option key="1" label="元素对象" value="1"></el-option> <el-option key="2" label="元素定位" value="2"></el-option>
<el-option key="2" label="元素定位" value="2"></el-option> </el-select>
<!-- 元素对象 -->
<div v-show="content.operateObject === '1'" class="operateObject-wrap">
<el-select v-model="content.operateGroupId" class="select" @change="handleDropdownBoxGroupChange(content)" placeholder="请选择元素组">
<el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<!-- 元素对象 --> <el-select v-model="content.operateElementId" class="select" placeholder="请选择元素">
<div v-show="content.operateObject != '2'" class="operateObject-wrap"> <el-option v-for="item in elementList" :key="item.id" :label="item.name" :value="item.id"></el-option>
<el-select v-model="content.operateGroupId" class="select" @change="getOperateGroup"> </el-select>
<el-option v-for="item in groupList" :key="item.id" :label="item.name" </div>
:value="item.id"></el-option> <!-- 元素定位 -->
</el-select> <div v-show="content.operateObject === '2'" class="operateObject-wrap">
<el-select v-model="content.operateElementId" class="select"> <el-select v-model="content.operateLocType" class="select">
<el-option v-for="item in elementList" :key="item.id" :label="item.name" <el-option label="id" value="id"></el-option>
:value="item.id"></el-option> <el-option label="name" value="name"></el-option>
</el-select> <el-option label="className" value="className"></el-option>
</div> <el-option label="tagName" value="tagName"></el-option>
<!-- 元素定位 --> <el-option label="linkText" value="linkText"></el-option>
<div v-show="content.operateObject === '2'" class="operateObject-wrap"> <el-option label="partialLinkText" value="partialLinkText"></el-option>
<el-select v-model="content.operateLocType" class="select" @change="getOperateLoc"> <el-option label="css" value="css"></el-option>
<el-option v-for="item in groupList" :key="item.id" :label="item.name" <el-option label="xpath" value="xpath"></el-option>
:value="item.id"></el-option> <el-option label="table" value="table"></el-option>
</el-select> <el-option label="value" value="value"></el-option>
<el-select v-model="content.operateLocValue" class="select"> <el-option label="index" value="index"></el-option>
<el-option v-for="item in elementList" :key="item.id" :label="item.name" </el-select>
:value="item.id"></el-option> <el-input v-model="content.operateLocValue" placeholder="请输入元素名称" class="select"></el-input>
</el-select>
</div>
</div> </div>
</div> </div>
<div class="time-right"> </div>
<el-switch v-model="content.isDisabled" active-value="1" inactive-value="0" <div class="time-right">
@click.native.stop></el-switch> <el-switch v-model="content.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
<el-button type="text" icon="el-icon-delete" style="color: red;" <el-button type="text" icon="el-icon-delete" style="color: red;" @click="deleteAssertion('3', index, index2)"></el-button>
@click="deleteAssertion('3', index, index2)"></el-button>
</div>
</div> </div>
<div class="time-left"> <div class="time-left">
<el-select v-model="content.assertionMode"> <el-select v-model="content.assertionMode">
<el-option key="1" lable="所选元素的值等于期望(SelectedValue)" value="1"></el-option> <el-option key="1" label="所选元素的值等于期望(SelectedValue)" value="1"></el-option>
<el-option key="2" lable="下拉框选项显示的文本等于期望(SelectedLabel) " value="2"></el-option> <el-option key="2" label="下拉框选项显示的文本等于期望(SelectedLabel) " value="2"></el-option>
<el-option key="3" lable="所选元素的值不等于期望(NotSelectedValue) " value="3"></el-option> <el-option key="3" label="所选元素的值不等于期望(NotSelectedValue) " value="3"></el-option>
</el-select> </el-select>
<el-input v-model=content.expectations placeholder="请输入期望值"></el-input> <el-input v-model="content.expectations" placeholder="请输入期望值"></el-input>
</div> </div>
</div> </div>
</div> </div>
<!-- 网页标题 --> <!-- 网页标题 -->
<div v-if="item.assertionQOList.webTitles.length > 0" class="information"> <div v-if="item.assertionQOList && item.assertionQOList.webTitles && item.assertionQOList.webTitles.length > 0" class="information">
<div>网页标题</div> <div>网页标题</div>
<div v-for="(content, index2) in item.webTitles.popupTexts" class="information"> <div v-for="(content, index2) in item.assertionQOList.webTitles" class="time">
<div class="time-left"> <div class="time-left">
<el-input v-model="content.expectations" placeholder="请输入期望的网页标题"></el-input> <el-input v-model="content.expectations" placeholder="请输入期望的网页标题"></el-input>
</div> </div>
<div class="time-right"> <div class="time-right">
<el-switch v-model="content.isDisabled" active-value="1" inactive-value="0" <el-switch v-model="content.isDisabled" :active-value="1" :inactive-value="0"></el-switch>
@click.native.stop></el-switch> <el-button type="text" icon="el-icon-delete" style="color: red;" @click="deleteAssertion('4', index, index2)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: red;"
@click="deleteAssertion('4', index, index2)"></el-button>
</div> </div>
</div> </div>
</div> </div>
@@ -848,6 +836,21 @@ export default {
}, },
// 断言 // 断言
addAfterAssionQOList(index) { addAfterAssionQOList(index) {
if (!this.saveForm.assertionType) {
this.$modal.msgError("请选择断言类型");
return;
}
// 确保assertionQOList对象存在
if (!this.saveForm.afterList[index].assertionQOList) {
this.$set(this.saveForm.afterList[index], 'assertionQOList', {
popupTexts: [],
elementAssertions: [],
dropdownBoxes: [],
webTitles: []
});
}
var param = { var param = {
assertionType: this.saveForm.assertionType, assertionType: this.saveForm.assertionType,
operateObject: null, // 操作对象 operateObject: null, // 操作对象
@@ -856,12 +859,11 @@ export default {
operateLocType: null, // 元素定位 operateLocType: null, // 元素定位
operateLocValue: null, // 元素定位 operateLocValue: null, // 元素定位
isDisabled: '1', isDisabled: '1',
expectations: null, // 网页标题
expectations: null, // 期望值 expectations: null, // 期望值
assertionMode: null, // 断言方式 assertionMode: null, // 断言方式
isPopText: null, isPopText: null,
} }
switch (this.saveForm.assertionType) { switch (this.saveForm.assertionType) {
case '1': case '1':
// 弹窗文本 // 弹窗文本
@@ -902,23 +904,59 @@ export default {
break break
} }
}, },
// 元素对象
getOperateGroup() {
this.getElementListData(this.saveForm.operateGroupId)
},
// 元素定位
getOperateLoc() {
this.getElementListData(this.saveForm.operateLocType)
},
// 获取元素列表 // 获取元素列表
getElementListData(id) { getElementListData(groupId, target) {
getElementList({ groupId: id }).then(res => { getElementList({ groupId: groupId }).then(res => {
if (res.code === 200) { if (res.code === 200) {
this.elementList = res.rows this.elementList = res.rows;
// 检查当前选中的operateElementId是否在新的列表中存在
if (target && target.operateElementId) {
const elementExists = this.elementList.some(item => item.id === target.operateElementId);
if (!elementExists) {
// 如果不存在,清空选择
target.operateElementId = null;
}
}
} }
}) })
}, },
// 元素组变化时触发 - 前置操作中的数据提取
handleBeforeDataExtractionGroupChange(row) {
if (row.operateGroupId) {
this.getElementListData(row.operateGroupId, row);
} else {
this.elementList = [];
row.operateElementId = null;
}
},
// 元素组变化时触发 - 后置操作中的数据提取
handleAfterDataExtractionGroupChange(row) {
if (row.operateGroupId) {
this.getElementListData(row.operateGroupId, row);
} else {
this.elementList = [];
row.operateElementId = null;
}
},
// 元素组变化时触发 - 元素断言
handleElementAssertionGroupChange(content) {
if (content.operateGroupId) {
this.getElementListData(content.operateGroupId, content);
} else {
this.elementList = [];
content.operateElementId = null;
}
},
// 元素组变化时触发 - 下拉框断言
handleDropdownBoxGroupChange(content) {
if (content.operateGroupId) {
this.getElementListData(content.operateGroupId, content);
} else {
this.elementList = [];
content.operateElementId = null;
}
},
}, },
watch: { watch: {
detail(newVal, oldVal) { detail(newVal, oldVal) {