简体   繁体   English

Imacros中的Javascript

[英]Javascript In Imacros

I am new to this site. 我是这个网站的新手。 I wrote a code in javascript for Imacros, but it is giving me errors. 我用Imacros的javascript语言编写了代码,但这给了我错误。

Config Info : 配置信息:

Firefox Version 32.0 IMACROS VERSION BUILD=8810214 Windows XP SP 2 Firefox版本32.0 IMACROS VERSION BUILD = 8810214 Windows XP SP 2

The situation : 情况:

I wanted to make a macro, which checks if there is a certain text on the screen, and if it is there, run another macro and continue, and if the text is not on screen, then just continue... 我想创建一个宏,该宏检查屏幕上是否存在某些文本,如果存在,则运行另一个宏并继续,如果文本不在屏幕上,则继续...

So, here is my code(wrote with help of others) 所以,这是我的代码(在别人的帮助下写的)

  for (i = 0; i < 50000; i++) {

    var macro;
    macro =  "CODE:";
    macro +=  "VERSION BUILD=8810214 RECORDER=FX" + "\n";
    macro +=  "TAB T=1" + "\n";
    macro +=  "SET !EXTRACT_TEST_POPUP NO" + "\n";
    macro +=  "SET !TIMEOUT_STEP 0" + "\n";
    iimPlay(macro)

    var verify;
    verify =  "CODE:";
    verify +=  "SET !EXTRACT_TEST_POPUP NO" + "\n";
    verify +=  "SET !TIMEOUT_STEP 0" + "\n";
    verify +=  "TAG POS=1 TYPE=DIV ATTR=TXT:Beat<SP>Me EXTRACT=TXT" + "\n";
    iimPlay(verify)



    var G_Extract= iimGetLastExtract(1);
    if (G_Extract!=="#EANF#")
    {
    var captchasolver;
    captchasolver =  "CODE:";
    captchasolver +=  "VERSION BUILD=8820413 RECORDER=FX" + "\n";
    captchasolver +=  "TAB T=1" + "\n";
    captchasolver +=  "SET !EXTRACT_TEST_POPUP NO" + "\n";
    captchasolver +=  "ONDOWNLOAD FOLDER=d:\ FILE=captcha.jpg" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=IMG ATTR=HREF:*captcha* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT" + "\n";
    captchasolver +=  "TAB OPEN" + "\n";
    captchasolver +=  "TAB T=2" + "\n";
    captchasolver +=  "URL GOTO=http://www.9kw.eu/grafik/form.html" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT ATTR=NAME:apikey CONTENT=xxxxxxx" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT ATTR=NAME:prio CONTENT=0" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:selfsolve CONTENT=NO" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:confirm CONTENT=NO" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:case-sensitive CONTENT=NO" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:selfsolve CONTENT=NO" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT ATTR=NAME:source CONTENT=imacros" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT ATTR=NAME:file-upload-01 CONTENT=D:\captcha.jpg" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT ATTR=TYPE:submit" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT" + "\n";
    captchasolver +=  "TAB CLOSE" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:captcha CONTENT={{!EXTRACT}}" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:button" + "\n";
    captchasolver +=  "TAG POS=1 TYPE=A ATTR=TXT:Continue<SP>Battle" + "\n";

    iimPlay(captchasolver)

    }
    else
    {var submit;
    submit =  "CODE:";
    submit +=  "SET !EXTRACT_TEST_POPUP NO" + "\n";
    submit +=  "SET !TIMEOUT_STEP 0" + "\n";
    submit +=  "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:submit.php* ATTR=NAME:submit" + "\n";
    iimPlay(submit)}

    //New Step

    iimPlay(verify)
    var G_Extract= iimGetLastExtract(1);
    if (G_Extract!=="#EANF#")
    {
    iimPlay(captchasolver)
    }
    else
    {iimPlay(submit)}

    //New Step


    iimPlay(verify);
    var G_Extract= iimGetLastExtract(1);
    if (G_Extract!=="#EANF#")
    {
    iimPlay(captchasolver)
    }


    }

As you can see, there is first, a simple for loop, then iimplan(macro) is just there for important things like no extract popup, and timeout step 0 and such... 如您所见,首先有一个简单的for循环,然后iimplan(macro)就在那里处理重要的事情,例如没有提取弹出窗口,超时步骤0等。

iimplay(verify) extracts that certain text,then I check with if statement if the line existed G_Extract !== EANF, then run captchasolver, or else, continue... iimplay(verify)提取特定文本,然后我用if语句检查该行是否存在G_Extract!== EANF,然后运行captchasolver,否则,继续...

The same thing goes on in the script. 脚本中发生了同样的事情。

The problem : 问题 :

I brought the page with the text I didn't want, and the script worked, it ran the captchasolver script, but when I ran the main script when the undesired text was not on screen, and left, after returning back, I found out that even though that undesired text was on screen, the script was not running the captchasolver script... 我将不需要的文本带到页面上,并且脚本起作用了,它运行了captchasolver脚本,但是当我运行主脚本时,不需要的文本不在屏幕上,然后返回时返回,发现了即使屏幕上显示了不需要的文本,该脚本仍未运行captchasolver脚本...

So, my question is that what could be the reason for it, and how can I fix it? 所以,我的问题是,可能是什么原因造成的,我该如何解决? Please help.. 请帮忙..

And what can I do to test it offline? 我该怎么做才能离线测试?

Use imacros with javascript for if and else. 将imacros与javascript一起用于if和else。 Offline tests are not possible with online services and I think the best way is javascript with jquery for your problem. 离线测试无法通过在线服务进行,我认为最好的方法是使用带有jQuery的javascript解决您的问题。

See other threads for javascript, jquery and imacros How to make imacro to select/solve the captcha?(RecaptchaV2) and iMacros Http POST to API endpoint 请参阅其他线程以获取javascript,jquery和imacros 如何使imacro选择/解决验证码?(RecaptchaV2)iMacros Http POST到API端点

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM