Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iMacros中的JavaScript循环问题_Javascript_Imacros - Fatal编程技术网

iMacros中的JavaScript循环问题

iMacros中的JavaScript循环问题,javascript,imacros,Javascript,Imacros,英语不是我的第一语言,所以请原谅我的错误 FCIM:我在Windows8x64的Firefox53.0.3(64位)上使用iMacrosV9.0.3 我正在尝试使用数据源循环iMacros中的JavaScript代码 当它只是iim(iMacro)代码时,工作正常。 它在正确的行号中完美地输入了正确的值。 但是在我将脚本从iim转换为JavaScript之后,它没有正确地输入数据 对于eg,在iMacro代码中,当我循环时,它正确地逐行输入数据: loop1-kannan1 loop2-kan

英语不是我的第一语言,所以请原谅我的错误

FCIM:我在Windows8x64的Firefox53.0.3(64位)上使用iMacrosV9.0.3

我正在尝试使用
数据源
循环iMacros中的JavaScript代码

当它只是iim(iMacro)代码时,工作正常。
它在正确的行号中完美地输入了正确的值。
但是在我将脚本从iim转换为JavaScript之后,它没有正确地输入数据

对于eg,在iMacro代码中,当我循环时,它正确地逐行输入数据:

  • loop1-kannan1

    loop2-kannan2

    loop3-kannan3

但在我将其转换为JavaScript之后,它总是一遍又一遍地输入相同的数据

  • loop1-kannan1

    loop2-kannan1

    loop3-kannan1

这是我的数据源

这里是一个iim代码示例

VERSION BUILD=9030808 RECORDER=FX
TAB T=1
TAB CLOSEALLOTHERS
SET !DATASOURCE demo.csv
SET !DATASOURCE_COLUMNS 8
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:fname CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:lname CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:address CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:city CONTENT={{!COL4}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:zip CONTENT={{!COL5}}
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:state CONTENT=%IN
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:country CONTENT=%73
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:email CONTENT={{!COL8}}
TAG POS=1 TYPE=BUTTON FORM=ID:demo ATTR=TXT:Submit
var macro; 
macro =  "CODE:";
for(var X = 1; X <= 10; X++){

  macro +=  "TAB T=1" + "\n";
  macro +=  "TAB CLOSEALLOTHERS" + "\n";
  macro +=  "SET !DATASOURCE demo.csv" + "\n";
  macro +=  "SET !DATASOURCE_COLUMNS 8" + "\n";
  macro +=  "SET !DATASOURCE_LINE {{!LOOP}} " + "\n";
  macro +=  "SET !LOOP 1" + "\n"
  macro +=  "URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:fname CONTENT={{!COL1}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:lname CONTENT={{!COL2}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:address CONTENT={{!COL3}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:city CONTENT={{!COL4}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:zip CONTENT={{!COL5}}" + "\n";
  macro +=  "TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:state CONTENT=%IN" + "\n";
  macro +=  "TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:country CONTENT=%73" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:email CONTENT={{!COL8}}" + "\n";
  macro +=  "TAG POS=1 TYPE=BUTTON FORM=ID:demo ATTR=TXT:Submit" + "\n";
  iimPlay(macro)

}
iimPlay(macro)
下面是一个Javascript示例代码

VERSION BUILD=9030808 RECORDER=FX
TAB T=1
TAB CLOSEALLOTHERS
SET !DATASOURCE demo.csv
SET !DATASOURCE_COLUMNS 8
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:fname CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:lname CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:address CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:city CONTENT={{!COL4}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:zip CONTENT={{!COL5}}
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:state CONTENT=%IN
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:country CONTENT=%73
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:email CONTENT={{!COL8}}
TAG POS=1 TYPE=BUTTON FORM=ID:demo ATTR=TXT:Submit
var macro; 
macro =  "CODE:";
for(var X = 1; X <= 10; X++){

  macro +=  "TAB T=1" + "\n";
  macro +=  "TAB CLOSEALLOTHERS" + "\n";
  macro +=  "SET !DATASOURCE demo.csv" + "\n";
  macro +=  "SET !DATASOURCE_COLUMNS 8" + "\n";
  macro +=  "SET !DATASOURCE_LINE {{!LOOP}} " + "\n";
  macro +=  "SET !LOOP 1" + "\n"
  macro +=  "URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:fname CONTENT={{!COL1}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:lname CONTENT={{!COL2}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:address CONTENT={{!COL3}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:city CONTENT={{!COL4}}" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:zip CONTENT={{!COL5}}" + "\n";
  macro +=  "TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:state CONTENT=%IN" + "\n";
  macro +=  "TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:country CONTENT=%73" + "\n";
  macro +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:email CONTENT={{!COL8}}" + "\n";
  macro +=  "TAG POS=1 TYPE=BUTTON FORM=ID:demo ATTR=TXT:Submit" + "\n";
  iimPlay(macro)

}
iimPlay(macro)
var宏;
宏=“代码:”;
对于(变量X=1;X背景
  • 用户PayovYuxug希望运行自动生成的代码,该代码具有由循环生成的自动生成区域
问题
  • 自动生成的代码的行为不同于手动输入而不自动生成的代码
解决方案
  • 比较自动生成的代码,并确定循环生成的区域是否包含任何应仅出现一次的无意重复命令
简单例子 下面是一个用伪代码演示此问题的简单示例

手工编辑的源代码 ##代码 连接=新数据库连接; 打印connection.currentrow.firstname; 打印connection.currentrow.lastname; 打印connection.currentrow.age; connection.getNextRow(); ##结果 爱丽丝·安德森33 生成的源代码 ##代码 mycode=“”; 对于范围(0..3)内的ixx:
mycode+=“connection=new DatabaseConnection;”“//我按照你说的做了,但没有任何改变:(无论如何,谢谢你宝贵的回复bro:)@kannankr你为什么要用JavaScript生成代码?你不需要用SET!DATASOURCE demo.csvbcoz来做这件事,我想保护我的代码(混淆),所以没有人会修改/编辑它们:)我提高了你的英语和格式。 ## Actual Result Alice Anderson 33 Alice Anderson 33 Alice Anderson 33 Alice Anderson 33 ## Desired Result Alice Anderson 33 Bob Banderson 44 Charlie Chanderson 55 Danny Danderson 66 ## BROKEN ;; Actual Result does not match desired result, because ## the DatabaseConnection gets reset every time. ## Fixed code mycode = ""; mycode += "connection = new DatabaseConnection;" //<-- FIXED MISTAKE for ixx in range(0 .. 3): mycode += "print connection.currentrow.firstname;" mycode += "print connection.currentrow.lastname;" mycode += "print connection.currentrow.age;" mycode += "connection.getNextRow();" myApp.run(mycode); SET !DATASOURCE demo.csv SET !DATASOURCE_COLUMNS 8