首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行脚本时排除URL

运行脚本时排除URL
EN

Stack Overflow用户
提问于 2016-10-01 17:40:11
回答 1查看 211关注 0票数 1

我正在使用火狐,iMacros和js。

我有一个带有URL列表的URLs.txt文件。在火狐中,我在表1中有一个网页打开,这个网站包含许多URL。其中一些在我的文本文件里。我正在尝试创建一个简单的脚本,它将跳过文本文件中的URL,并在下一个选项卡中打开其他URL。一次十个。因此,Tab 2-11应该使用不在我的文本文件中的新URL打开。这是我的JavaScript,但不起作用:

代码语言: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个选项卡):

代码语言:javascript
复制
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"
....
EN

回答 1

Stack Overflow用户

发布于 2016-10-05 08:00:51

我可以给你个线索。让我们使用URL列表创建txt文件,如下所示:

代码语言:javascript
复制
"http://www.example1.com
http://www.example2.com
http://www.example3.com"

注意,只有两个双引号:在这个列表的开头和结尾。

因此,您的脚本看起来可能如下:

代码语言:javascript
复制
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"');

我把测试这段代码留在目标网站上给你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39809636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档