Capybara, проверка элемента HTML по идентификатору и классу
Два вопроса от новичка.
Q1- Можно ли утверждать существование HTML node по идентификатору и классу?
Например, чтобы увидеть, существует ли следующий элемент:
<div class="drawer" id="first"....>
Я видел, что вы можете использовать что-то вроде:
page.should have_css('div.drawer')
page.should have_css('div#first')
но можем ли мы как-то запросить существование обоих параметров, я пробовал следующее и не работал:
page.should have_selector("div", :class => "drawer", :id => "first")
Q2- Можно ли добавить 2 селектора в метод "внутри" capybara, т.е. я видел, что вы можете ограничить область действия, выполнив:
within("//div[@id='first']") do
но мы можем отфильтровать этот DIV, добавив id = 'first' и class= 'drawer' каким-то образом?
Большое спасибо!
Ответы
Ответ 1
Вы можете комбинировать селектор.
Для вашего первого вопроса следующие проверки для div с идентификатором "first" и "drawer" класса:
page.should have_css('div#first.drawer')
Для вашего второго вопроса блок within
может использовать один и тот же css-селектор, как указано выше:
within('div#first.drawer') do
Или, если вы действительно предпочитаете xpath, вы можете сделать:
within("//div[@id='first' and @class='drawer']") do
Хорошая ссылка для css-селекторов: http://www.w3.org/TR/CSS2/selector.html