Selenium RC локатор ссылок не может найти ссылку внутри таблицы - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть следующая страница:

<table>
<tr>
    <th>Company Name</th>
</tr>
<tr>
    <td><a href="www.whatever.com"> What Ever Company</a></td>
</tr>
</table>

Название компании помещено в таблицу произвольно, поэтому я могу использовать только текст ссылки, чтобы найти ссылку:

selenium.click("link='What Ever Company'");

Тем не менее, он говорит: ERROR:Element link='What Ever Company' not found.

В чем здесь проблема?Есть ли другой способ нажать на ссылку?

Большое спасибо.

РЕДАКТИРОВАТЬ Кажется, что проблема в том, что у меня есть несколько ссылок с одним и тем же текстом (мой плохой),Сделав текст ссылки уникальным, я использую selenium.click("//a[contains(text(),'Test Campaign 1756237989')]"), и он работает.

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Может быть, это потому, что вы забыли пробел в начале ссылки?

selenium.click("link=' What Ever Company'");
                      ^

Другой возможный способ щелкнуть ссылку - использовать выражение XPath:

selenium.click("//a[contains(.,'What Ever Company')]");

Это будет соответствовать всем ссылкам с 'What Ever Company' в нем.

Если хотите точнее:

selenium.click("//a[.=' What Ever Company']");

Это будет совпадать только в том случае, если якорь равен «What Ever Company».

Другой вариант - сделать поиск более конкретным (т.е. сообщить локатору, что эта ссылка всегда находится внутри <td> с <a> внутри):

selenium.click("//td[a]/a[contains(.,'What Ever Company')]");

//td[a] ищет все <td> элементы с <a> внутри. (Отличается от //td/a тем, что если вы ищите элементы с //td[a][2], вы получите второе <a>, которое находится внутри <td>, тогда как //td/a[2] с другой стороны получает второе <a> первого <td>.)

EDIT: я думал, что использование . в качестве ссылки на text() в выражениях XPath должно работать, но если это не так, попробуйте вместо этого использовать text().

0 голосов
/ 22 февраля 2012

Попробуйте следующие XPath:

"//table/tr[2]/td/a"

или

"//a[contains(text(), 'What Ever Company')]"

Должно работать.

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