Селен: не могу найти ссылку в таблице - PullRequest
5 голосов
/ 13 ноября 2009

Я пишу сценарий Selenium. Для html-страницы, включающей таблицу, я не могу использовать «css = table tr: nth-child (2) td: nth-child (3) a», чтобы найти ссылку в таблице. Selenium IDE дает мне локатор [error] not found.

Но используйте "css = table tr: nth-child (2)", он может находиться в строке. Так что я ошибаюсь за локатор css, думаю, добавление «td: nth-child (3) a» должно работать для ссылки в td, почему бы и нет?

Редактировать: я использую Firefox 3.0.15

Ответы [ 2 ]

8 голосов
/ 13 ноября 2009

Учитывая HTML:

<html>
  <body>
    <table>
      <tr><td>Hello</td><td>World</td></tr>
      <tr><td>I'm</td><td><a href="http://www.example.com/">Batman</a></td></tr>
    </table>
  </body>
</html>

Вы можете использовать следующий локатор для ссылки во 2-м столбце 2-го ряда:

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

Обновление:

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

0 голосов
/ 18 июля 2013

Подобная проблема все еще существует в Selenium IDE 2.1.0

Я тестирую группу веб-сайтов, чтобы проверить, изменился ли конкретный URL.

Ссылка, которую я должен проверить, находится в таблице, примерно 25-го числа сверху вниз ...

<tr>
<td>
<div align="center">
<font color="#FFFFFF">
<a target="_blank" href="http://[The link I need to test] ... 

Я использовал оба

assertElementPresent  //*[starts-with(@href,'The Link')]

и

assertElementPresent  //*[contains(@*,'The Link')]

В некоторых случаях первый найдет результат, а второй - нет. Большую часть времени ни одна из них не найдет ссылку.

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