0

好吧,我在一个网站上运行 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 _”

有人知道怎么修这个东西吗?这样每次宏循环时我都会得到一个不同的水果名称,而不是 undefined?

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

4

2 回答 2

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

您可以设计任意数量的循环和 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 />

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

**编辑2 * *

介意;“等等 - 可能有问题

于 2013-06-06T19:35:01.963 回答
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());
于 2016-12-11T00:08:29.713 回答