Capybara проверяет класс HTML и идентификатор

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

<i class = "ui-grid-icon-cancel" ui-grid-one-bind-aria-label = "aria.removeFilter" aria-label = "Remove Filter">&nbsp;</i>

В настоящее время я пытаюсь добраться до значка ui-grid-cancel и подтвердить, что он там. Вот код, который я использую для его проверки.

page.should have_css('class#ui-grid-icon-cancel')

Что еще я могу сделать, чтобы исправить это.

Я ожидаю проверить элемент CSS с помощью капибары.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
50
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы пробовали page.should have_css('.ui-grid-icon-cancel') . При поиске элемента класса вам нужно использовать обозначение точки, а не явно указывать слово «класс». `

Я получаю эту ошибку при выполнении .should have Failure/Error: page.should have_css('i[aria-label = "Remove Filter"]') NoMethodError: неопределенный метод `следует' для #<Capybara::Session>

Rubyman543 23.03.2022 07:35

Вы можете использовать любой из следующих стратегии поиска:

  • 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>

Rubyman543 23.03.2022 07:34

Ознакомьтесь с обновленным ответом и дайте мне знать о статусе.

undetected Selenium 23.03.2022 07:49
Ответ принят как подходящий

Все остальные ответы о необходимых селекторах 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')

Другие вопросы по теме