В настоящее время я пытаюсь найти этот элемент, и капибара подтверждает, что он там. Там появляется элемент, и я использую page.should have_css, чтобы увидеть, есть ли этот элемент.
<i class = "ui-grid-icon-cancel" ui-grid-one-bind-aria-label = "aria.removeFilter" aria-label = "Remove Filter"> </i>
В настоящее время я пытаюсь добраться до значка ui-grid-cancel и подтвердить, что он там. Вот код, который я использую для его проверки.
page.should have_css('class#ui-grid-icon-cancel')
Что еще я могу сделать, чтобы исправить это.
Я ожидаю проверить элемент CSS с помощью капибары.






Вы пробовали page.should have_css('.ui-grid-icon-cancel') . При поиске элемента класса вам нужно использовать обозначение точки, а не явно указывать слово «класс».
`
Вы можете использовать любой из следующих стратегии поиска:
css_selector с использованием значения атрибута класс:
page.should have_css('i.ui-grid-icon-cancel')
^ here dot denotes classname
css_selector с использованием значения атрибута ария-лейбл:
page.should have_css('i[aria-label = "Remove Filter"]')
Я получаю эту ошибку при выполнении .should have Failure/Error: page.should have_css('i[aria-label = "Remove Filter"]') NoMethodError: неопределенный метод `следует' для #<Capybara::Session>
Ознакомьтесь с обновленным ответом и дайте мне знать о статусе.
Все остальные ответы о необходимых селекторах CSS верны, однако, если вы получаете ошибки о том, что should не определено, значит, вы либо неправильно установили RSpec, либо в вашем проекте отключен синтаксис should - https://relishapp.com/rspec/rspec-expectations/docs/syntax-configuration. Синтаксис should будет отключен по умолчанию в RSpec 4, и любой новый код действительно не должен использовать его на данный момент. Вместо этого вы должны использовать синтаксис expect. Любое из следующего должно работать, если у вас правильно установлен RSpec, в зависимости от того, что именно вы пытаетесь проверить.
expect(page).to have_css('.ui-grid-icon-cancel')
expect(page).to have_css('i.ui-grid-icon-cancel')
expect(page).to have_css('i', class: 'ui-grid-icon-cancel')
Я получаю эту ошибку при выполнении .should have Failure/Error: page.should have_css('i[aria-label = "Remove Filter"]') NoMethodError: неопределенный метод `следует' для #<Capybara::Session>