imacros如何使用if语句检查页面内容?

时间:2013-11-06 16:31:58

标签: javascript macros firefox-addon imacros

如何使用if语句检查页面内容,然后根据if语句执行操作?以下是点击时可能产生的结果:

图片1

http://i.imgur.com/V9rnrVS.png

图片2

http://i.imgur.com/eeYhfXU.png

图片3

http://i.imgur.com/W6Tjd8l.jpg

所以这是我的主线逻辑:

I will keep on clicking the box on the page [picture 1]

if it encounters [picture 2] click the box (i have the code for that)

else if it encounters [picture 3] refresh the page

else keep on clicking the box

如果图片不清晰,请随时发表评论,我会尽力上传更清晰的图片。


所以现在我尝试构建代码,但它似乎不起作用。

Map.js

var test;

test ="CODE:";
test +="SET !ERRORIGNORE YES "+"\n";
test +="URL GOTO=http://tppcrpg.net/map.php?Map=11 "+"\n";

for (var i = 1; i < 10 ; i++)
{

iimSet("n",i)
iimPlay(test)
iimPlay("map1.iim")

}

map1.iim

TAG POS=1 TYPE=INPUT:IMAGE FORM=ACTION:/map.php?Map=11 ATTR=NAME:Find

它给了我这个错误:

  

[Exception ...“组件返回失败代码:0x80520001(NS_ERROR_FILE_UNRECOGNIZED_PATH)[nsILocalFile.initWithPath]”nsresult:“0x80520001(NS_ERROR_FILE_UNRECOGNIZED_PATH)”location:“JS frame :: resource://imacros/utils.js :: ::第192行“数据:否”,行:188(错误代码:991)


使用专家完整HTML代码我发现如果我遇到[图片3],则代码如下:

TAG POS=1 TYPE=H2 ATTR=*
TAG POS=2 TYPE=P ATTR=CLASS:center

3 个答案:

答案 0 :(得分:1)

你有一个imacros javacript脚本的例子。

Loop in Imacros using Javascript

您可以将包含iMacros代码的3个代码声明到该页面上的div。使用if子句,您可以看到页面上有哪一个。

编辑:

在HTML中,您有一个名为DIV的元素。喜欢这个

<div class="some_div">
Some text
</div>

要点击该div,iMacros代码为:

TAG POS=1 TYPE=DIV ATTR=CLASS:some_div

答案 1 :(得分:0)

也许你可以创建一个回调函数,当变化(如显示/隐藏图片)发生时,它总是被调用。

很难帮助完成图像。可以发布一些代码或提供更多信息吗?我在理解你的问题时遇到了问题;)

答案 2 :(得分:0)

我在使用iMacros时发现,如果我正在使用任何类型的分支(ifs或循环)创建脚本,最好用JS编写代码,并且在执行JS可以做的事情时只使用iMacros语言很容易做到。您可以使用iimSet将变量传递给iMacros脚本和iimGetLastExtract以将它们返回给JS。 JavaScript中的“content”变量等于页面的“window”对象,“content.document”等于页面的“document”对象。

在不知道相关代码的情况下,很难提供具体的例子。我希望这能指出你正确的方向,让你像老板一样收获那些神奇宝贝。