Javascript imacros:识别包含给定按钮的动态帧

Javascript imacros:识别包含给定按钮的动态帧,javascript,firefox,imacros,Javascript,Firefox,Imacros,FF 42.0 iMacro for FF BUILD=8940826 2008年初8核MacPro OSX 10.8.2 编辑以实现给定的建议,并更改为函数,因为我需要多次使用此版本 如果按钮信息匹配,此函数将查找相应的帧 function SearchFrame() { var check = "CODE:"; check = "SET !TIMEOUT_STEP 0"; check+= "FRAME F={{i}}" + "\n"; check+= "TAG POS=1 TYP

FF 42.0 iMacro for FF BUILD=8940826 2008年初8核MacPro OSX 10.8.2

编辑以实现给定的建议,并更改为函数,因为我需要多次使用此版本

如果按钮信息匹配,此函数将查找相应的帧

function SearchFrame()
{

var check =  "CODE:";
check =  "SET !TIMEOUT_STEP 0";
check+=  "FRAME F={{i}}" + "\n"; 
check+=  "TAG POS=1 TYPE=BUTTON ATTR=DATA-LOG-CLICK:add-button&&DATA-TOOLTIP-REMOVE:Unfollow&&DATA-TOOLTIP-ADD:Follow&&DATA-TOOLTIP:Follow&&CLASS:button<SP>button-icon-only<SP>button-add<SP>mo-add&&DATA-BUTTON:add&&TYPE:button&&ARIA-LABEL:Follow&&TXT:" + "\n"; 

frame=1;

for(i=1;i<=25;i++){
iimSet("i",i)

//if the result of the macro is true save frame number and break
if(iimPlay(check)==true)
{

frame=i;
break;
}
}
//return frame number
return frame;


}

SearchFrame()
尝试在引号之间压缩整行,其中当前除了添加\之外,其他信息都在引号中,以转义内部引号,从而生成:

check+=  "EVENT TYPE=CLICK SELECTOR=\"#overview>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV:nth-of-type(2)>DIV>DIV>DIV>DIV>DIV>DIV>BUTTON\" BUTTON=0" + "\n"; 
只是循环通过,并没有找到匹配的按钮


或者。。。我可以通过实现一个通配符来解决这个问题吗?几次尝试到目前为止都没有成功。不清楚是否需要将*也删除,因为它位于带引号的字符串中。

1我认为按钮信息有问题。尝试在“实验事件记录模式”下记录这一行。顺便说一句,您不需要命令iimPlay“pressButton”,因为上面提到的行就是这样做的。2设置帧=1,因为“iMacros”将计数从1开始,而不是从0开始。3添加命令集!为了不浪费6秒等待tags.thx,TAB T=1之后的第0步超时。改变了问题以反映建议,现在有一个单独的按钮信息是动态的问题,以及现在固定的每页加载的框架是动态的问题。无法利用从实验模式返回的信息。经过大量实验后,我发现即使在站点的另一个标记不变的部分使用此功能,添加一行更改标记、步骤或页面的超时也会导致它立即循环,并且找不到任何内容。消除线路使其工作,但其间有6秒的延迟。我检查了三次语法。我找不到发生这种事的任何原因。与全局设置冲突?我觉得当地的定义需要谨慎。。。。但是设置!超时\u步骤x的任何值都失败。不知道我为什么理解,这个问题已经解决了。
check+=  "EVENT TYPE=CLICK SELECTOR=\"#overview>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV:nth-of-type(2)>DIV>DIV>DIV>DIV>DIV>DIV>BUTTON\" BUTTON=0" + "\n";