我的框架名称不断变化时遇到问题 我尝试了 FRAME NAME=* 和其他各种方法。我认为它不起作用,因为该网页设置为不同的 html 选项卡。我不确定为什么,但它不允许我从我打开的单独的 hmtl 选项卡中提取任何数据。我在想这就是问题所在,但我想不通。谢谢
openAndExtract = "Code: ";
openAndExtract += "FRAME NAME="ext-comp-1494"" + NewLine;
openAndExtract += "TAG POS=1 TYPE=DIV ATTR=TXT:There<SP>are<SP>no<SP>updates." + NewLine;
openAndExtract += "FRAME F=0" + NewLine;
openAndExtract += "TAG POS=3 TYPE=SPAN ATTR=TXT:01000978" + NewLine;
openAndExtract += "FRAME NAME="ext-comp-1489"" + NewLine;
openAndExtract += "TAG POS=3 TYPE=DIV ATTR=TXT:Search<SP>this<SP>feed<SP>|<SP>ShowAll<SP>Updates<SP>ShowAll*" + NewLine;
openAndExtract += "FRAME F=0" + NewLine;
openAndExtract += "TAG POS=3 TYPE=SPAN ATTR=TXT:01008153" + NewLine;
openAndExtract += "FRAME NAME="ext-comp-1484"" + NewLine;
openAndExtract += "TAG POS=3 TYPE=DIV ATTR=TXT:Search<SP>this<SP>feed<SP>|<SP>ShowAll<SP>Updates<SP>ShowAll*" + NewLine;
openAndExtract += "FRAME F=0" + NewLine;
openAndExtract += "TAG POS=1 TYPE=EM ATTR=ID:ext-gen119" + NewLine;
openAndExtract += "FRAME NAME="ext-comp-1006"" + NewLine;
alert(iimGetLastExtract ());
PlayMacro = iimPlay(openAndExtract);
最佳答案
为此,您必须深入研究 HTML 代码。将您记录的值与 iMacros 进行比较,并尝试在网页的 HTML 代码中查找。为了从 HTML 代码中提取它,您必须使用某种正则表达式或 regex 。
那你就得用2个宏了。首先提取 HTML 代码,然后使用 JavaScript 从 HTML 中提取 NAME 值。当你拥有它时,你将在第二个宏中使用它。
例子:
var macro1;
macro1 ="CODE:";
macro1 +="TAG POS=1 TYPE=DIV ATTR=CLASS:some_class EXTRACT=HTM";
var macro2;
macro2 ="CODE:";
macro2 +='FRAME NAME="{{name}}"'+"\n";
macro2 +="TAG POS=1 TYPE=DIV ATTR=CLASS:some_other_class "+"\n";
iimPlay(macro1)
var name=iimGetLastExtract();
name=name.match(/some_regular_expresion/);
iimSet("name",name)
iimPlay(macro2)
这就是方法。剩下的由你决定。您可能找不到该名称属性,因为它可以被隐藏。
关于java - iMacros 框架名称疑难解答,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20487177/