链接js和immacro来自动填写表单

linking js and imacro to auto fill a form

本文关键字:表单 js immacro 链接      更新时间:2023-09-26

我在一个网站上运行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");

immacro代码是:

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_"

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

注:水果都是随机的…一旦代码正常工作,我会将其更改为实际的电子邮件。

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");

将"fruit"设置在循环之外。我不认为可以通过这种方式进入。像这样试试

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 放在循环中,否则它将无法访问你的变量。

你可以设计任意数量的循环和switch语句,但问题是你需要确保在什么时间播放哪个宏以及如何设置变量。我希望这对你有帮助。

* * * 编辑这里 * * * * 这是我的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 * *

注意;这可能会有问题

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());