Поиск элементов в списке HTML на основе другого элемента в списке с помощью Selenium RC - PullRequest
0 голосов
/ 27 октября 2011
    <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, т.е. нажимать соответствующие кнопки. Нет смысла использовать идентификатор группы Group_00000000-0000-0000-0000-000000000002, поскольку они будут заменены динамическими GUID.

1 Ответ

0 голосов
/ 27 октября 2011

Поскольку единственное, что отличает эти два блока, и, по-видимому, многие из них похожи, это текст элемента <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», которая содержится в списке с классом «button», который содержится в неупорядоченном списке, который содержит список с классом «content», который содержит div, который содержит span с классом 'title' и текст 'the_title_value'. Таким образом, вы используете значение title, чтобы найти правильный элемент ul, а затем переходите к кнопке оттуда.

...