2016-06-29 1 views
0

Это мой "//div[@class='city']/h4[text()='Newyork']" XPathверифицировать заголовок текста в селекторе CSS

xpath s можно использовать в Geb, но я хочу, чтобы написать аналогичное выражение в CSS или лучше Groovy-иш, Gebish локатора.

Я попытался

.city>h4:'Newyork'

.city>h4:contains('Newyork')

, но никто не работал.

я говорил https://sqa.stackexchange.com/questions/362/a-way-to-match-on-text-using-css-locators

+0

Связанный вопрос касается селена, а не простого CSS. Обычный CSS не может адресовать текстовые узлы. Было предложение для ': contains', но это также не могло бы обрабатывать текст. Боюсь, вам не повезло, и вам придётся прибегнуть к тому, чтобы дать h4 уникальный класс или что-то в этом роде. –

+0

Итак, вы говорите о Гебе, с которым я не знаком. Может быть, это решение. –

ответ

0

Геб имеет возможность дополнительно фильтровать вниз элементы совпавших с помощью селектора CSS, передавая карту элемента атрибуты его методы вместе с этим селектором. В нем также представлены a special attribute for matching text of a node. Ваш селектор будет выглядеть следующим образом:

$('div.city > h4', text: 'Newyork') 

Пожалуйста, обратите внимание, что это работает, запрашивая текст для каждого элемента и проверок его от переданного значения, что это делает работу на стороне виртуальной машины Java, а не в браузере, это означает, что вы хотите, чтобы ваш css-селектор был как можно более конкретным и соответствовал как можно меньше элементов, иначе селектор будет очень медленным.