Задать вопрос
TakteS
@TakteS
Elixir/Erlang developer

Почему Capybara не видит чекбокс?

Вот кусок из формы:

<div class='cr-cat'>
                  <ul>
                    <li>
                      <input disabled='disabled' id='cat-17' name='cat' type='checkbox' value='cat17'>
                      <label for='cat-17' onclick="$('.podcat#17').slideToggle('fast');">Программирование</label>
                      <ul class='podcat' id='17' style='display: none;'>
                        <li>
                          <input id="task_subcategories_12" name="task[subcategories][]" type="checkbox" value="12" />
                          <label for='task_subcategories_12'>Python</label>
                        </li>
                      </ul>
                    </li>
                  </ul>
                </div>


При клике на <label for='cat-17'>... разворачиваются подкатегории, которые, собственно и нужно выбрать.

Пробовал так:
check 'Python'

Так:
check '#task_subcategories_12'

Вот так:
find(:xpath, "//input[@value='task_subcategories_#{@subcategory.id}']").set(true)


И даже так (на всякий случай развернув категорию):
find(:xpath, "//input[@value='cat#{@category.id}']").set(true)
find(:xpath, "//input[@value='#{@subcategory.id}']").set(true)


Категорию разворачивает без ошибки, но подкатегорию не видит.

Во всех случаях ошибки типа:
Unable to find xpath "//input[@value=''12"]" ...

Что еще посоветуете?
  • Вопрос задан
  • 2661 просмотр
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Vakiliy
@Vakiliy
Ну, если уж тестить так тестить до конца :)
find("label[for^='cat-17']").click
expect(page).to have_selector("#task_subcategories_12")

по вопросу, для невидимых: visible: false
expect(page).to have_selector("#task_subcategories_12", visible: false)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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