Проверка работоспособности с помощью XPath в Ruby Watir

Я использую библиотеку Ruby Watir для автоматического тестирования клиента, и у меня возникают проблемы с селектором XPath. Я думаю, мне просто нужна еще одна пара глаз, чтобы дать мне знать, если я что-то упустил.

Вот селектор, который я использую:

puts ie.cell(:xpath, "//img[@src='3.jpg']/../").text

Для этого набора таблиц он работает должным образом и печатает «Третье изображение»:

<table>
  <tr>
    <td><img src="1.jpg">First Image</td>
  </tr>
</table>
<table>
  <tr>
    <td><img src="2.jpg">Second Image</td>
  </tr>
</table>
<table>
  <tr>
    <td><img src="3.jpg">Third Image</td>
  </tr>
</table>

Но это ломается, когда я удаляю вторую таблицу:

<table>
  <tr>
    <td><img src="1.jpg">First Image</td>
  </tr>
</table>
<table>
  <tr>
    <td><img src="3.jpg">Third Image</td>
  </tr>
</table>

Используя приведенный выше код puts, я получаю эту ошибку во втором примере:

Watir::Exception::UnknownObjectException: Unable to locate element, using :xpath, "//img[@src='3.jpg']/../"

person Andrew Hampton    schedule 02.06.2009    source источник


Ответы (2)


Я воспроизвел проблему, и перезапуск браузера (IE6) устранил ее для меня.

person Željko Filipin    schedule 03.06.2009
comment
Запуск нового экземпляра IE решил проблему. Однако есть много странных ошибок, с которыми я столкнулся. У меня на рабочем столе был html-файл, который я тестировал. Если бы я изменил html-файл и обновил страницу, селектор xpath вообще не работал бы последовательно. Однако при использовании других селекторов такое объявление :id будет работать нормально. Другой пример того, что не сработает: если я изменю атрибуты src, селектор xpath не увидит изменения после обновления страницы. - person Andrew Hampton; 03.06.2009
comment
Я не уверен, что происходит. Похоже на проблему с кэшем. Если вам нужен лучший ответ, опубликуйте его в группе watir-general, там больше людей, которые разбираются в Watir. - person Željko Filipin; 03.06.2009

Для текущих версий Watir лучший способ сделать это будет

browser.img(:src => '3.jpg').parent.text

person Chuck van der Linden    schedule 19.12.2011