我正在使用Firefox,iMacros和js。
我有一个带有URL列表的 URLs.txt 文件。在Firefox中,我在选项卡1中有一个webpage open。该网站包含许多网址。其中一些在我的文本文件中。 我正在尝试创建一个简单的脚本,它将跳过我的文本文件中的URL,并在下一个选项卡中打开其他每个URL。 10立刻。因此,应使用不在我的文本文件中的新URL打开选项卡2-11。 这是我的JavaScript,但它不起作用:
var macro;
var ret;
macro ="CODE:";
macro +="SET !DATASOURCE URLs.txt"+"\n"
macro +="SET !ERRORIGNORE YES"+"\n";
macro +="TAG POS=1 TYPE=HTML ATTR=* EXTRACT=HTM"+"\n";
macro +="SET !DATASOURCE_LINE {{!LOOP}}"+"\n";
iimPlay(macro)
var text=iimGetExtract();
if(text.search("00016")!=-1) {
ret = iimPlay("donothing.iim");
}
else if (ret != -101) {
ret = iimPlay("openURL.iim");
}
openURL.iim只是打开带有URL的标签,但在此脚本中它永远不会跳过列表中的URL。我需要帮助来修复此代码。
这就是openURL.iim的样子(对于前4个标签):
VERSION BUILD=9030808 RECORDER=FX
TAB T=1
EVENT TYPE=CLICK SELECTOR="HTML>BODY>UL:nth-of-type(2)>LI>A" BUTTON=0 MODIFIERS="ctrl"
EVENT TYPE=CLICK SELECTOR="HTML>BODY>UL:nth-of-type(2)>LI:nth-of-type(2)>A" BUTTON=0 MODIFIERS="ctrl"
EVENT TYPE=CLICK SELECTOR="HTML>BODY>UL:nth-of-type(2)>LI:nth-of-type(3)>A" BUTTON=0 MODIFIERS="ctrl"
EVENT TYPE=CLICK SELECTOR="HTML>BODY>UL:nth-of-type(2)>LI:nth-of-type(4)>A" BUTTON=0 MODIFIERS="ctrl"
EVENT TYPE=CLICK SELECTOR="HTML>BODY>UL:nth-of-type(2)>LI:nth-of-type(5)>A" BUTTON=0 MODIFIERS="ctrl"
....
答案 0 :(得分:0)
我可以给你一个线索。让我们创建包含以下URL的txt文件:
"http://www.example1.com
http://www.example2.com
http://www.example3.com"
注意只有两个双引号的事实:在此列表的开头和结尾。
所以你的脚本可能看起来像:
iimPlayCode (
"SET !DATASOURCE URLs.txt" + "\n" +
"SET !EXTRACT {{!COL1}}"
);
var excLinks = iimGetExtract().split(/\s+/);
var incLinks = [];
for (i = 1; i <= window.document.querySelectorAll("HTML>BODY>UL:nth-of-type(2)>LI").length; i++)
if (excLinks.indexOf(window.document.querySelector("HTML>BODY>UL:nth-of-type(2)>LI:nth-of-type(" + i + ")>A").href) == -1)
incLinks.push(i);
for (i = 0; i < Math.min(incLinks.length, 10); i++)
iimPlayCode('EVENT TYPE=CLICK SELECTOR="HTML>BODY>UL:nth-of-type(2)>LI:nth-of-type(' + incLinks[i] + ')>A" BUTTON=0 MODIFIERS="ctrl"');
我会在目标网站上为您测试此代码。