如何在某些div中选择按钮而不是其他div?

时间:2013-10-14 16:37:50

标签: html class text imacros

我必须选择的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是IDENTICAL:
<div class="diviWANT"><div class="diviDONOTwant">


以下是我的NONWORKING 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

这里的答案是我以前的NONWORKING 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/
如果单击该按钮,它将变为紫色。 (这是供您参考,所以你知道它是否点击了按钮。)
应该选择的唯一按钮是具有类diviWANT的div内的按钮。这些是随机的,diviWANT div的放置没有方法或节奏。即你不能只选择奇数等。你需要根据这个问题中给定的html来寻找并找到diviWANT div中的按钮。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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阅读here

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