Если предположить, что кнопка, на которую вы ссылаетесь, на самом деле является кнопкой (элемент с типом submit, reset, image или button), то Capybaras: селектор кнопки (по умолчанию) будет ждать ее быть не инвалидом.
click_button('Something')
или
find_button('button_id').click
или
find(:button, 'button_value').click
Если какой-либо из методов поиска или действия не ожидает достаточно долго для определенного элемента, вы всегда можете увеличить максимальное время ожидания для конкретного поиска или действия, передав параметр: wait
find(:button, 'Something', wait: 10).click
Если вы не используете типы селекторов (если нет, то почему бы и нет) и вместо этого просто используете необработанный CSS для поиска элемента, то вы можете использовать псевдокласс :enabled
вместе с вашим существующим CSS и что-то вроде
find('#my_button:enabled', wait: 10).click
Если элемент, который вы называете кнопкой, на самом деле не кнопка, а элемент другого типа ( и т. Д.), Стилизованный под кнопку, то вам нужно будет объяснить, как именно вы отключаете «кнопка».