Как использовать несколько локаторов CSS в качестве локатора селена?

StackOverflow https://stackoverflow.com/questions/2289996

Вопрос

Я пытаюсь перейти по ссылке в строке таблицы, содержащей несколько ссылок.Этот шаблон используется во всей таблице.

Это работает:

browser.wait_for(:element => "css=tr:nth-child(1) li:nth-child(2) > a")

Это не делает:

browser.click "css=tr:nth-child(1) li:nth-child(2) > a"

Есть идеи, почему это может быть?Я использую селен-клиент RubyGem.

Это было полезно?

Решение

Я подозреваю, что это связано с ошибкой в ​​cssQuery, который Selenium в настоящее время использует для поиска элементов с помощью CSS.Подробности о проблеме и патче можно найти в комментариях к следующей проблеме: http://jira.openqa.org/browse/SEL-698

Надеюсь, это поможет - я считаю, что Selenium 2 будет использовать другую библиотеку для локаторов CSS - возможно, JQuery's Sizzle (http://sizzlejs.com/), что должно решить эту проблему.

Дэйв.

Другие советы

Чтобы избежать подобных болезненных проблем с CSS, я установил jQuery в качестве пользовательского расширения.Это дает возможность определить строку локатора, аналогичную CSS («jquery=td.dt-col-status div.dt-liner:contains('Complete')»), что является гораздо более мощным инструментом.Если хотите, я могу подробнее рассказать, как я это сделал для Java RC.

Это ошибка в Selenium 1. Я бы попробовал записать весь путь в вашем пути CSS и посмотреть, поможет ли это.

например, если вы используете следующий HTML, вы можете использовать следующий локатор CSS

    <table>
        <tr>
            <td>
                <li>
                    <a href="/yourlink" >
</li> </td> </tr> </table>

"css=tr:nth-child(1) > td > li:nth-child(2) > a"

Если это не сработает, вы всегда можете использовать XPath.Он так же выразителен, как и локаторы CSS, но имеет меньше сбоев.Единственное, что вам нужно иметь в виду при использовании xpath, это то, что они обычно медленнее, чем локаторы CSS.

"xpath=//tr/td//li[2]/a" 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top