0

我必须选择的 HTML:

<div class="diviWANT">
<div class="adiv">
</div>
<button class="abutton" type="button">
    <span class="aspan">
        <i class="ani"></i> 
            SomeText
    </span>
    <span class="aclass2">
        SomeText2
    </span>
    <span class="aclass3">
        SomeText3
    </span>
</button>
</div>
<div class="diviDONOTwant">
    <div class="adiv">
    </div>
    <button class="abutton" type="button">
        <span class="aspan">
            <i class="ani"></i> 
                SomeText
        </span>
        <span class="aclass2">
            SomeText2
        </span>
        <span class="aclass3">
            SomeText3
        </span>
    </button>
</div>

请注意,这两个 div 是相同的,除了以下内容:
<div class="diviWANT"><div class="diviDONOTwant">.


以下是我的非工作 imacros 脚本(根本没有选择任何按钮)

VERSION BUILD=6060703 RECORDER=FX
SET !TIMEOUT_STEP 1
SET !ERRORIGNORE YES
WAIT SECONDS=0.5
TAG POS=1 TYPE=DIV ATTR=CLASS:diviWANT&&TXT:SomeText
TAG POS=2 TYPE=DIV ATTR=CLASS:diviWANT&&TXT:SomeText
TAG POS=3 TYPE=DIV ATTR=CLASS:diviWANT&&TXT:SomeText

这里是我以前的非工作 imacros 脚本(选择所有按钮,即使是我不想要的按钮)

VERSION BUILD=6060703 RECORDER=FX
SET !TIMEOUT_STEP 1
SET !ERRORIGNORE YES
WAIT SECONDS=0.5
TAG POS=1 TYPE=SPAN ATTR=CLASS:aspan&&TXT:SomeText
TAG POS=2 TYPE=SPAN ATTR=CLASS:aspan&&TXT:SomeText
TAG POS=3 TYPE=SPAN ATTR=CLASS:aspan&&TXT:SomeText

那么我怎样才能让它工作呢?




这是一个 jsbin 供您测试以尝试使其工作(更新为新的):
http://jsbin.com/AnewiNE/1/
如果单击该按钮,它会变为紫色。(这是供您参考的,因此您知道它是否单击了按钮。)
应该选择的唯一按钮是带有 class 的 div 内的按钮diviWANT。这些是随机的,没有方法或节奏来放置diviWANTdiv。即,您不能只选择奇数等。您需要仅diviWANT根据此问题中给定的 html 查找并仅找到 div 中的按钮。

4

2 回答 2

1
var i=1;
  do
   {
    iimSet("i", i);
    iimPlay("CODE:TAG POS={{i}} TYPE=DIV ATTR=TXT:SomeText* EXTRACT=HTM");
    if(iimGetLastExtract()!='#EANF#')
       {
        if(iimGetLastExtract().indexOf("diviWANT")>0)
           {
            iimSet("i", i);
            iimPlay("CODE:TAG POS={{i}} TYPE=BUTTON ATTR=TXT:SomeText*");
           }
       }
        else break;  
    i++;
   }
   while(i);

在http://jsbin.com/oPuFiHa/4http://jsbin.com/AnewiNE/1上测试- 它正在工作。

注意:替换indexOf("diviWANT")indexOf("REAL_DIV_CLASS_NAME")

这是一个 JS 代码,将其保存在 iMacros 文件夹中,扩展名为 *.js,而不是 *.iim。然后刷新 iMacros 列表,更多关于 JS 的内容请阅读这里

PS:根据您提供的详细信息,我最后一次尝试帮助您,祝您好运。

于 2013-10-15T12:22:49.880 回答
1

要在其他内容中选择某些内容,请尝试此示例

TAG POS=1 TYPE=DIV ATTR=CLASS:JUST_AN_EXAMPLE&&TXT:SomeText
TAG POS=R1 TYPE=SPAN ATTR=CLASS:aOTHERspan&&TXT:SomeText

如果这解决了问题,请告诉我们。否则我将编辑答案。我无法从您的代码中判断您要选择什么 div 以及要留下什么。

编辑:方法是一样的,你只需要稍微改变一下。所以这将选择一个 DIV 并在其中选择 SPAN。由于 DIV 标签将不同,因此不会选择另一个 DIV 中的另一个相同 SPAN。

于 2013-10-14T18:26:35.957 回答