Imacros 中的 JavaScript

标签 javascript imacros

我是这个网站的新手。我用 javascript 为 Imacros 编写了一段代码,但它给了我错误。

配置信息:

火狐版本 32.0 IMACROS 版本构建=8810214 Windows XP SP 2

情况:

我想制作一个宏,它检查屏幕上是否有特定文本,如果存在,则运行另一个宏并继续,如果文本不在屏幕上,则继续...

所以,这是我的代码(在其他人的帮助下编写的)

  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)
    }


    }

正如你所看到的,首先是一个简单的 for 循环,然后 iimplan(macro) 只是用于重要的事情,例如没有提取弹出窗口,超时步骤 0 等等......

iimplay(verify) 提取特定文本,然后我使用 if 语句检查该行是否存在 G_Extract !== EANF,然后运行 ​​captchasolver,否则,继续...

脚本中也发生了同样的事情。

问题:

我带来了带有我不想要的文本的页面,并且脚本工作了,它运行了 captchasolver 脚本,但是当我运行主脚本时,不需要的文本不在屏幕上,并在返回后离开,我发现即使屏幕上出现了不需要的文本,脚本也没​​有运行 captchasolver 脚本...

所以,我的问题是,这可能是什么原因,以及如何解决它?请帮忙..

我可以做什么来离线测试它?

最佳答案

将 imacros 与 javascript 结合使用用于 if 和 else。 在线服务无法进行离线测试,我认为最好的方法是使用 javascript 和 jquery 来解决您的问题。

查看有关 javascript、jquery 和 imacros 的其他线程 How to make imacro to select/solve the captcha?(RecaptchaV2)iMacros Http POST to API endpoint

关于Imacros 中的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722340/

相关文章:

javascript - 在 iMacros 或 JavaScript 中提取对话框文本

javascript - 在imacros Javascript中获取唯一的字符串

javascript - JQuery Mouseleave 在错误的元素上触发

javascript - req.isAuthenticated() 重定向时发生变化?

javascript - 了解 _.js 中下划线的声明?

Javascript Typeahead 正确设置 JSON

javascript - 如何使页面以随机像素和随机方向滚动

javascript - iMacros javascript 根据条件循环

javascript - 来自不同项目/域的 webpack 和 vue 异步组件

javascript - 如何使用 imacros 填充没有 id 或 class 的表单字段?