Imacros中如何定位Clone提交按钮的POS值?
定位动态位置的Clone按钮(iMacros)
问题背景
页面包含0到多个动态生成的Amend按钮:
<input type="submit" value="Amend" onclick="jQuery('#adjust_item_id').val(1234); setAction(this.form, 'adjust',0,null, 1);">
下方有一组固定按钮,但Amend按钮的数量变化会导致这些固定按钮的POS值动态改变:
<div class="xyz-buttons"> <input value="Back" type="submit" onclick="setAction(this.form, 'back','0',null, '0');"> <input value="Clone" type="submit" onclick="setAction(this.form, 'clone','0',null, '1');"> <input value="FINISH" type="submit" onclick="setAction(this.form, 'save_validate','0',null, '1');" class="GreenButton"> </div>
尝试以下命令未成功:
TAG POS=1 TYPE=DIV ATTR=CLASS:pfbc-buttons TAG POS=R1 TYPE=INPUT:SUBMIT FORM=ID:FCLS7022 ATTR=ID:clone
正确定位方法
方法1:基于父容器的相对定位
先定位到固定的父容器xyz-buttons,再在容器内相对定位Clone按钮(注意修正你之前写错的容器类名):
TAG POS=1 TYPE=DIV ATTR=CLASS:xyz-buttons TAG POS=R2 TYPE=INPUT:SUBMIT ATTR=VALUE:Clone CONTENT=YES
- 说明:父容器内第一个按钮是Back(R1),第二个是Clone(R2),不受外部Amend按钮数量影响。
方法2:直接通过按钮属性定位(推荐)
跳过POS值,直接用按钮独有的value或onclick属性定位,完全避免位置变化的影响:
# 仅通过value属性定位(最简单) TAG TYPE=INPUT:SUBMIT ATTR=VALUE:Clone CONTENT=YES # 结合onclick属性增强唯一性 TAG TYPE=INPUT:SUBMIT ATTR=VALUE:Clone&&ONCLICK:setAction(this.form, 'clone','0',null, '1') CONTENT=YES
方法3:结合固定表单ID定位
如果表单IDFCLS7022是固定的,可以缩小定位范围:
TAG FORM=ID:FCLS7022 TYPE=INPUT:SUBMIT ATTR=VALUE:Clone CONTENT=YES
你之前命令的错误点
- 容器类名错误:你写的
pfbc-buttons实际应该是xyz-buttons - 按钮无ID属性:目标Clone按钮没有
id="clone"的属性,用ATTR=ID:clone会匹配不到任何元素
内容的提问来源于stack exchange,提问作者Shawon Md
相关产品推荐
相关产品推荐

