2013-09-06 3 views
0

У меня есть следующий html.проверить переключатель данных установлен на No - Capybara

<div class="toggle_checkbox switchLogin aligned" data-section="secure_content" data-switch="no"> 

Когда я просматриваю к странице я хочу, чтобы проверить, что переключатель данных установлен в no.I попробовал что-то вроде этого:

result = page.find('.toggle_checkbox switchLogin aligned').data-switch 
assert result == 'no' 

Но это не работает. Кто-нибудь знает, как я могу проверить это с помощью capybara?

Спасибо!

+0

, что делает 'result' равно? если это будет 'assert result == 'no'' – danmanstx

+0

hi danmanstx - да, это правильно. Мой плохой, это была опечатка в оригинальной публикации, я обновил сообщение сейчас – user1523236

ответ

1

Вы хотите сделать:

result = page.find('.toggle_checkbox.switchLogin.aligned')['data-switch'] 
assert result == 'no' 

Пару вещей отметить.

При поиске элемента с использованием нескольких классов (т.е. атрибут класса имеет несколько слов, разделенных пробелами), css-селектор должен поставить период перед каждым.

CSS-селектор:

.toggle_checkbox switchLogin aligned 

На самом деле означает найти элемент с классом «toggle_checkbox», в пределах этого найти элемент типа «switchLogin», а затем в пределах этого элемента типа «выровненном».

То, что вы на самом деле хотите это:

.toggle_checkbox.switchLogin.aligned 

Что означает найти элемент с классом "toggle_checkbox", "switchLogin" и "Выровнять".

Во-вторых, чтобы получить значение атрибута элемента, это делается с использованием метода []. Содержимое [] - это строка, соответствующая имени атрибута. Таким образом, формат в основном:

element['attribute_name'] 

В вашем случае, это:

element['data-switch'] 

(где элемент найденный элемент)

+0

Отлично, спасибо Джастин !!! И спасибо также за то, что нашли время, чтобы опубликовать подробное объяснение, это будет большой помощью для меня в будущем, очень ценится! – user1523236

Смежные вопросы