2013-04-25 2 views
4

Я выполняю функциональное тестирование с использованием CasperJS test class и не могу выбрать элементы по их текстовым значениям. Моя цель - проверить, что класс div виден, а затем проверить, имеет ли оно значение, которое я ожидаю.Выбор элементов по тексту с помощью селекторов CSS3 в CasperJS

Я попытался использовать селектор CSS3, упомянутый на CaspersJS' selector page, но должен делать что-то неправильно. Ни в одном из следующих работ для меня (все приложенные в ""):

  • div#myid[text()='sometext']
  • div#myid[text='sometext']
  • div#myid[text=sometext]
  • div#myid:contains('sometext')
  • div#myid:contains(sometext)

Все указатели относительно того, как я могу выберите конкретный элемент на основе его текста va LUE?

+3

': содержит()' не в спецификации больше, и никаких браузеров не реализуют его изначально. Невозможно выбрать элемент по его тексту в CSS; вам придется использовать XPath вместо этого. – BoltClock

+1

Вы можете наложить некоторый jQuery на это и проверить эквивалентность или сходство значений в '.text()'. – imjared

ответ

1

Спасибо за комментарии выше. Я закончил работу с использованием jQuery (так как он был загружен на клиенте) через вызовы evaluate() в тестах CasperJS.

4

Try:

var x = require('casper').selectXPath; 
this.test.assertExists(x('//*[@id="myid"][text()="sometext"]'), 'the element exists'); 
+0

Это путь. Не нужно вводить jQuery на страницу, чтобы сделать некоторые выборки. Хотя в этом случае он уже был загружен. –

Смежные вопросы