【问题标题】:imacros How do I use if statements to check the content of the page?imacros 如何使用 if 语句检查页面内容?
【发布时间】:2013-11-06 16:31:57
【问题描述】:

如何使用 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")

}

ma​​p1.iim

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

它给了我这个错误:

[异常...“组件返回失败代码:0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]”nsresult:“0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)”位置:“JS 框架 :: resource://imacros/utils.js :: :: line 192" data: no], line: 188 (Error code: 991)


使用Expert Complete HTML Code发现如果遇到【图3】有如下代码:

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

【问题讨论】:

    标签: javascript macros firefox-addon imacros


    【解决方案1】:

    这里有一个 imacros javacript 脚本示例。

    Loop in Imacros using Javascript

    您可以在该页面上的一个 div 中声明 3 个代码,每个代码都包含 iMacros 代码。通过 if 子句,您可以看到页面上存在哪一个。

    编辑:

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

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

    要点击那个 div,iMacros 代码是:

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

    【讨论】:

    • 请问“div”是什么意思?我没有这方面的经验。
    • 所以我试着找到所有结果的 div 类,它一直说&lt;!--&lt;div class="clear"&gt;&amp;nbsp;&lt;/div&gt;--&gt;。但是,在图片 3 的 div 类中,它显示 &lt;div class="terrainBox"&gt;,然后显示与之前提到的相同 div 类
    • 尝试使用这些选项进行录制并尝试获取 3 个不同的 imacros 代码。 prntscr.com/23dpme
    • 好吧,我只是试了一下并添加了图片 3 的代码。问题是图片 2 或图片 3 会随机出现,所以这就是我需要 if 语句的原因。我将如何编写代码,就像正在检查图片 3 是否正确一样?
    • 按 RECORD,点击图片 3. 然后获取 iMacros 代码并将 CONTENT=EVENT:MOUSEOVER 放在它的末尾。如果出现错误,则表示没有图片。但是如果有错误则说明图片在那里。
    【解决方案2】:

    也许您可以创建一个回调函数,在发生更改(例如显示/隐藏图片)时始终调用该函数。

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

    【讨论】:

    • 回调有什么作用?我没有这方面的经验。我实际上没有为 if 语句编写的代码,因为我以前从未使用过它们。我认为根据页面的内容点赞可能会有所帮助。
    【解决方案3】:

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

    在不了解相关代码的情况下,很难提供具体示例。我希望这能为您指明正确的方向,并让您像老板一样收获那些口袋妖怪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 2016-10-05
      • 2015-03-19
      • 2017-04-21
      • 2012-07-21
      • 1970-01-01
      相关资源
      最近更新 更多