Как использовать несколько локаторов CSS в качестве локатора селена? - PullRequest
2 голосов
/ 18 февраля 2010

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

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

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.

Ответы [ 3 ]

1 голос
/ 19 февраля 2010

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

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

Дэйв.

0 голосов
/ 26 марта 2013

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

ex, если вы используете следующий html, вы можете использовать следующий локатор css

    <table>
        <tr>
            <td>
                <li>
                    <a href="/yourlink" ><br>
                </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" 
0 голосов
/ 24 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...