使用Selenium RC基于列表中的另一个元素查找HTML列表中的元素

时间:2011-10-27 11:28:46

标签: selenium-rc

    <ul id="Group_00000000-0000-0000-0000-000000000001" class="xxxxxxxxx">
        <li class="buttons">        
            <button class="button edit">Edit</button>
            <button class="button addToOption">Add to option</button>
            <button class="button removeFromOption" >Remove from option</button>
            <button class="button addToGroup">Add to group</button>
            <button class="button removeFromGroup">Remove from group</button>
        </li>
        <li class="content">
            <div class="text">
                <span id="Title_Of_The_Item" class="title"> QSE244</span>           
                <p class="description">A description about this item</p>
            </div>
        </li>
    </ul>
    <ul id="Group_00000000-0000-0000-0000-000000000002" class="xxxxxxxxx">
        <li class="buttons">        
            <button class="button edit">Edit</button>
            <button class="button addToOption">Add to option</button>
            <button class="button removeFromOption" >Remove from option</button>
            <button class="button addToGroup">Add to group</button>
            <button class="button removeFromGroup">Remove from group</button>
        </li>
        <li class="content">
            <div class="text">
                <span id="Title_Of_The_Item" class="title"> QSE236 </span>          
                <p class="description">A description about this item</p>
            </div>
        </li>
    </ul>

在上面的结构中,我希望能够点击基于QSE244或QSE236等标题列出的任何按钮 - 即点击相应的按钮。使用id的Group_00000000-0000-0000-0000-000000000002是没有意义的,因为它们将被动态GUID替换。

1 个答案:

答案 0 :(得分:0)

由于区分这两个块的唯一因素,并且可能更像是它们,更像是<span class="title">元素的文本,这就是你需要键入的内容。我会尝试这样的定位器:

xpath=//ul[li[@class='content']/div/span[@class='title' and .='the_title_value']]/li[@class='buttons']/button[contains(@class, 'the_button_type']

表示“带有类'the_button_type'的按钮,它包含在带有类'按钮'的列表中,该按钮包含在无序列表中,该列表包含一个包含类'content'的列表,其中包含一个包含带类的span的div 'title'和文本'the_title_value'。所以你使用标题值找到正确的ul元素,然后从那里导航到按钮。