ui测试前后端问题修复
This commit is contained in:
@@ -52,5 +52,5 @@ public class AssertionQO {
|
|||||||
private String isFailedAbort;
|
private String isFailedAbort;
|
||||||
|
|
||||||
/**是否禁用 0否 1是*/
|
/**是否禁用 0否 1是*/
|
||||||
private String isDisabled;
|
private Integer isDisabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class DataExtractionQO {
|
|||||||
private String elementAttribute;
|
private String elementAttribute;
|
||||||
|
|
||||||
/**是否禁用 0否 1是 */
|
/**是否禁用 0否 1是 */
|
||||||
private String isDisabled;
|
private Integer isDisabled;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()); // 返回默认设置
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user