Элемент не найден до тех пор, пока вы не нажмете вручную на странице - PullRequest
1 голос
/ 19 февраля 2010

У меня следующая проблема:

При записи веб-теста с использованием Selenium IDE (v1.0.4) каждый шаг будет записан, но при попытке воспроизвести тесты некоторые кнопки не будут найдены, хотяу них нет динамических идентификаторов.

Например, вы можете использовать следующую страницу, чтобы понять, что я имею в виду:

http://www.vodafone360.com
Там вы можете войти (бесплатная регистрация)
Запись входа ивоспроизведение для этого базового URL-адреса работает нормально.

НО после этого открывается страница с базовым URL-адресом home.vodafone.com.

На этой странице я не могу автоматизировать щелчок по любому изверхние кнопки навигации (People, My Web, Shop)

Я также использовал надстройку XPather для идентификации всего XPath, но это также не было успешным (если я не выполнял щелчок или щелчок правой кнопкой мыши по любому из них).ссылки вручную)

Кроме того, добавление Selenium Steps, например "click top-bar" для эмуляции щелчка по верхней панели, не приводит к ожидаемому поведению.

VerifyElementPresent для одной из верхней панеликнопки по-прежнему возвращают «ложь»

Важное примечание: Повтор необходимо выполнить после выхода из системы и повторного входа в систему, чтобы не было ручного нажатия на эту страницу для проверки этого.

Есть какой-нибудь особенный трюк?

Заранее спасибо!

1 Ответ

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

Чтобы щелкнуть элемент Люди, похоже, будет проще использовать CSS-селектор, чтобы найти элемент. Как вы можете видеть на изображении ниже, People находится внутри тега li. Вам нужно, чтобы ваш селектор CSS нашел людей, а затем нажмите на тег a после него.

альтернативный текст http://img502.imageshack.us/img502/9776/vodafone.png

Таким образом, в этом случае это будет css=li.people a, что эквивалентно xpath=//li[@class='people']/a, поэтому он является дочерним элементом li

Итак, ваша команда будет click | css=li.people a |

...