Как определить, существует ли элемент в Watir - PullRequest
9 голосов
/ 19 марта 2011

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

Я пробовал обе комбинации, но, похоже, ничего не работает ... если browser.image(: src "/media/images/icons/reviewertools/editreview.jpg").exists затем ... если browser.image (: src" /media/images/icons/reviewertools/editreview.jpg").exists?тогда ...

Если у кого-то есть конкретное предложение относительно того, как это реализовать, пожалуйста, помогите!Спасибо!

Ответы [ 3 ]

17 голосов
/ 19 марта 2011

Кажется, вы пропустили запятую между параметрами.

Должно быть

if browser.image(:src, "/media/images/icons/reviewertools/editreview.jpg").exists?

Также вы можете найти эту страницу полезной в будущем, чтобы узнать, какие атрибутыподдерживается.

2 голосов
/ 19 марта 2011

Код, который вы разместили, должен работать очень хорошо. Редактировать: К сожалению, неправильно.Как указал Катмун, пропущена запятая.

browser.image(:src "/media/images/icons/reviewertools/editreview.jpg").exists?

Одна из проблем, с которой вы можете столкнуться, заключается в том, что указанная вами переменная браузера на самом деле является элементом, который не существует.

Например

b = Watir::IE.start(ipAddress)
b.frame(:name, "doesntExist).image(:src "/media/images/icons/reviewertools/editreview.jpg").exists?

Приведенный выше код будет вызывать Watir :: UnknownFrameException.Вы можете обойти это, сначала проверив наличие кадра или окружив код в блоке begin / rescue.

2 голосов
/ 19 марта 2011

Похоже, вы используете его правильно. Вот старый RDoc of Watir .

Разве это не работает, потому что Ватир не может его найти? Трудно сказать, потому что нет источника или ссылки на тестируемую страницу. Я думаю, что я использую только image.exists? . Как правило, ошибки, которые возникают, когда изображение существует, но не найдено:

  1. Как несовместимо с типом элемента. Существует таблица, чтобы помочь вам увидеть, какие типы объектов могут быть найдены с различными атрибутами здесь .
  2. То, что не правильно. Возможно, вам придется немного поиграть с этим. Попробуйте использовать строку регулярного выражения, например, browser.image (: src, /editreview.jpg/). В крайнем случае, возможно, используйте element_by_xpath, но с этим связаны эксплуатационные расходы.
  3. Местоположение неверно. Может быть, элемент находится в рамке или что-то в этом роде. browser.frame ("detail"). image (: src, /editreview.jpg/).

Попробуйте, но, пожалуйста, дайте мне знать, что сработало. Еще одна вещь, что вы проверяете? Если это часть критериев тестирования, вы можете справиться с этим. Если вам нужно нажать на нее, то забудьте .exists? и просто нажмите на него. Руби даст вам знать, если его там нет. Если вам нужна благодать, узнайте о begin / rescue .

Удачи,

Dave

...