帮助中心
快速寻找答案
首页>帮助手册>

用元素源代码区分元素状态

描述

有些看着像复选框而不是复选框,无法用设置复选框指令,但是需要判断此时是否处于被选中状态,该怎么办?

标准的复选框(checkbox)和单选按钮(radio button)

用影刀捕获后,在这个元素的元素编辑界面,最后一级的 type 应为 radiocheckbox

![](../img/用元素源代码区分元素状态 01.png)

![](../img/用元素源代码区分元素状态 00.png)

解决办法:

在这个网页元素上执行 JavaScript

function (element, input) {
return element.checked;
}

通过判断这个脚本的执行结果,判断这个按钮或框是否已经选中。True 为已经选中,False 为没有选中。

![](../img/用元素源代码区分元素状态 02.png)

执行 JS 脚本指令配置:

![](../img/用元素源代码区分元素状态 03.png)

流程执行逻辑: 在 Chrome 浏览器中获取已打开的网页对象,保存在 web_page 中 -> 在 web_page 的“单选按钮 _radio-input”元素上执行上述 JavaScript 脚本,执行结果保存在 web_js_result 中 -> 打印 web_js_result。

执行结果:

![](../img/用元素源代码区分元素状态 04.png)

该按钮已经选中。

**注:**不是只有 radio button 或 checkbox 才能用这个方法判断状态,遇到实际场景时建议尝试一下。

非标准复选框或单选按钮

![](../img/用元素源代码区分元素状态 05.png)

按 F12 打开浏览器开发者工具,通过观察元素源代码可以知道,选中"赠送运费险"时,包含复选框的父元素会有 data-action 属性,不选中时则没有。

选中时:

<a class="filter icon-tag J_Ajax icon-hover" trace="filterbox" trace-filterid="filterYunFeiXian" href="#" data-url="filter" data-key="auction_tag[]" data-value="385" data-action="remove" uia-uid="0|12">
<span class="icon icon-btn-check-big"></span>
<span class="text ">赠送退货运费险</span>
</a>

未选中时:

<a class="filter icon-tag J_Ajax " trace="filterbox" trace-filterid="filterYunFeiXian" href="#" data-url="filter" data-key="auction_tag[]" data-value="385" uia-uid="0|11">
<span class="icon icon-btn-check-big"></span>
<span class="text ">赠送退货运费险</span>
</a>

于是捕获复选框元素的父元素:

![](../img/用元素源代码区分元素状态 06.png)

判断逻辑:

![](../img/用元素源代码区分元素状态 07.png)

流程执行逻辑: 获取已打开的网页,保存到 web_page -> 获取上面捕获的元素的源码 -> 如果源代码包含 data-action,打印 “已选中”,否则打印 “未选中”

问题没有解决?去社区提问