将js和imacro链接到自动填充表单

时间:2013-06-06 15:51:54

标签: javascript forms loops webforms imacros

好吧我正在网站上运行imacro ..而且我正在运行它以便它将为我填写所有字段数次,而我不必一次又一次地继续这样做。

此网站的表单是我尝试自动填充:http://ohiohiphopawards.com/vote-now/2013-nominations

对于底部的电子邮件,我想在每次宏循环时输入不同的电子邮件。

所以我有一个javascript代码..那么代码很大,所以我做了另一个更小的代码:

myfruits = new Array();myfruits.push("Strawberry");
myfruits.push("Banana");
myfruits.push("Kiwi");
myfruits.push("Orange");
myfruits.push("Mango");


function getFruit() {
for(i=0;i<10;i++) //change 10 to the number of times you want it to be ran
{
   randomint = Math.floor(Math.random()*myfruits.length);
   }
   return  myfruits[randomint];
}
   iimSet("fruit",myfruits[randomint]); //in the macro you can access the random fruit through {{fruit}} much like you would {{!VAR1}}
   iimPlay("fruitmacro.iim");

imacro代码是这样的:

VERSION BUILD=8300326 RECORDER=FXTAB T=1
URL GOTO=http://ohiohiphopawards.com/vote-now/2013-nominations
WAIT SECONDS=0
FRAME NAME="iframe"
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=NAME:answer[8] CONTENT=KPT
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=NAME:answer[18] CONTENT=KPT
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=NAME:answer[20] CONTENT=BloodSho
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=NAME:answer[25] CONTENT=KPT<SP>-<SP>Welcome<SP>Back
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=NAME:answer[35] CONTENT=KPT<SP>ft<SP>Snoop<SP>Doff<SP>&<SP>Bella<SP>Nae<SP>-<SP>How<SP>It<SP>Goes
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=NAME:answer[41] CONTENT=KPT
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=ID:email CONTENT={{fruit}}
WAIT SECONDS=5

不幸的是,当你到达底部的电子邮件部分..而不是去js文件中给出的各种选项,我一直得到“_ undefined _”

任何人都知道如何解决这个问题?因此,每次宏循环时,我会得到一个不同的水果名称而不是未定义?

P.S。结果只是随机的。一旦代码正常工作,我就会将其更改为实际的电子邮件。

2 个答案:

答案 0 :(得分:0)

function getFruit() {
for(i=0;i<10;i++) //change 10 to the number of times you want it to be ran
{
   randomint = Math.floor(Math.random()*myfruits.length);
   }
   return  myfruits[randomint];
}
   iimSet("fruit",myfruits[randomint]); //<-- This is your problem
   iimPlay("fruitmacro.iim");

您在循环外设置“水果”。我认为不能以这种方式访问​​它。 试试这个

for(i=0;i<10;i++) //change 10 to the number of times you want it to be ran
{
   randomint = Math.floor(Math.random()*myfruits.length);
   iimSet("fruit",myfruits[randomint]);
   iimPlay("fruitmacro.iim");
   }

要让你的宏循环,你需要将iimSet和iimPlay 放在那个循环中,否则它将无法访问你的变量。

您可以设计任意数量的循环和切换语句,但问题是您需要确定在哪个时间播放哪个宏以及如何设置变量。 我希望它有所帮助

** * 在此编辑 * ** * 这是我的js文件的内容:

var fruitmacro;
    fruitmacro =  "CODE:";
    fruitmacro +=  "VERSION BUILD=7601105 RECORDER=FX" + "\n";
    fruitmacro +=  "URL GOTO=http://ro-bot.fr/flish/01.html" + "\n";
    fruitmacro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:take ATTR=ID:email CONTENT={{fruit}}" + "\n";
    fruitmacro +=  "WAIT SECONDS=5" + "\n";

var myfruits = ["apple","orange","peach","grapes"];
for(i=0;i<10;i++) 
{
   randomint = Math.floor(Math.random()*myfruits.length);
   iimSet("fruit",myfruits[randomint]);
   iimPlay(fruitmacro);
   }

这是html文件的内容:

<input type="text" name="take" id="email" size="100" maxlength="100" /><br />

经过测试并且有效。您的代码中必须存在其他内容。

** EDIT2 * *

小心; “等等 - 可能存在问题

答案 1 :(得分:0)

function exec (command){
    var headerCommand = "CODE:\nVERSION BUILD=9030808 RECORDER=FX\n";
    iimPlay(headerCommand + command);
};

exec("URL GOTO=http://xxx");
exec("TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:txt_Username CONTENT=root");
alert ($('iframe[id=frameContent]').contents().find('#wlSsid').val());