2

我正在使用 imacro 的概念来自动填写表格。我录了一个,拿到了剧本。

例如:-

VERSION BUILD=7601105 RECORDER=FX
TAB T=1
URL GOTO=http://mysite/home.aspx
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:home.aspx ATTR=ID:ContentPlaceHolder1_txtUsername CONTENT=samual
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:home.aspx ATTR=ID:ContentPlaceHolder1_txtPassword CONTENT=sampassword
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form1 ATTR=ID:ContentPlaceHolder1_btnLogin
TAG POS=1 TYPE=A ATTR=ID:ContentPlaceHolder1_bpo_TabContainer_tbpnl_lnk_address_0
TAG POS=1 TYPE=INPUT:IMAGE FORM=ID:form1 ATTR=ID:Logout

但我的实际要求是单击按钮,我需要调用此宏,并且每次表单字段值都可能发生变化。所以我需要动态地将这些新值传递给宏。我想点击那个按钮,我会将新值传递给这些脚本并保存这个宏并调用那个宏。但我不确定这是它的工作方式,还是可以从使用 imacro 创建的程序中调用宏(如上)?

谢谢


非常感谢您的回答。它提供了一些见解。但是你能再解释一下吗。因为我对 imacro 概念完全陌生。

    <html>
 <body> 
   <script type="text/javascript">
    function runimacros() {
      var iim1 = new ActiveXObject("imacros");
      var ret
      ret = iim1.iimInit("-fx");
      ret = iim1.iimDisplay("Test Macro");
      ret = iim1.iimPlay ("testmacro.iim");//this is the macro which I created in firefox and located C:\Users\MyName\Documents\iMacros\Macros\testmacro.iim
      ret = iim1.iimExit();
   }
   </script>
 <a href="javascript:runimacros()">Click to run iMacros</font></a>
 </body>
 </html>

请注意,创建的宏 (testmacro.iim) 使用的是 firefox,它位于上述位置。

我尝试了“ http://wiki.imacros.net/JavaScript ”的方法,但没有奏效。我错过了什么吗?我在 Visual Studio 中尝试了上面的代码,并将默认浏览器设置为 IE。请给任何建议。

谢谢

4

1 回答 1

2

您不能从另一个调用 Imacros 程序 (.iim),但可以使用 javascript 调用一个或多个传递一个变量的 iim 文件:

var ret;    
ret = iimDisplay ("optional message to be displayed on the Imacros banner");
var i='input variable'
ret = iimSet("i", i);
ret = iimPlay("myScript.iim");
/* Check for error */
if (ret = 1) {        
      /* do useful stuff */
}else
{
err = "The following error occurred: "+iimGetLastError();
alert(err);
};

在宏脚本中:

'this way we pass the variable to the input field
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:ContentPlaceHolder1_txtUsername CONTENT={{i}}
于 2012-12-06T17:44:12.317 回答