Capybara: почему не работает опция :visible?

Помогите разобраться, почему Capybara всегда находит поле email вне зависимости от значения visible.
Есть страница с таким вот полем на форме:

<label>
  <input type="email" name="email" class="hide" placeholder="Email">
</label>


Это класс .hide
.hide {
    display: none !important;
}


Когда я тестирую страницу с помощью Capybara с драйвером Poltergeist, то делаю очень простую проверку:
<br>
page.must_have_field('email', :type => 'email', :visible => false)<br>
check('Send by email')<br>
page.must_have_field('email', :type => 'email', :visible => true)<br>


Так вот тест проходит, несмотря на то, что код для переключения видимости поля отсутствует, т.е. оно всегда скрыто.
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
@belokopytoff Автор вопроса
Ошибка была в том, что я неправильно настроил драйвер для Capybara.

Вместо
Capybara.default_driver = :poltergeist
У меня было
Capybara.javascript_driver = :poltergeist
Поучилось, что я работал с дефолтным драйвером, который неправильно ищет скрытые элементы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы