Я пытаюсь сопоставить атрибут класса, используя Capybara с RSpec.
Я очень четко вижу элементы и их классы, но, что бы я ни пытался, Капибара, похоже, ничего не знает о классах. Но это может найти идентификатор, это не проблема. Любые подсказки, пожалуйста? https://gist.github.com/1428472
visit "/admin/staff?mobile=1"
page.should have_selector("ul") #works
page.should have_selector("body#page") #works
page.should have_selector("html.ui-mobile") #fails
page.should have_selector("body.ui-mobile-viewport") #fails
save_and_open_page # this launches the page so I can see it and verify these attributes are indeed there.
HTML:
< html class="ui-mobile" >
< body class="ui-mobile-viewport" id="page" >
Я также установил точку останова и сделал то, что тоже не работало правильно.
#works
p find('body')[:id]
p find(:xpath, '//body[@id="page"]')
# doesn't work
p find('body')[:class]
p find(:xpath, '//html[@class="ui-mobile"]')
Что происходит?
ОБНОВЛЕНИЕ: Оказывается, что это действительно работает, однако проблема здесь в том, что HTML, отображаемый save_and_open_page, отличается от того, что видит капибара. Когда я ломаю сразу после save_and_open_page и помещаю page.html, все по-другому. Обычно это то же самое, но куча атрибутов класса исчезла так же, как и некоторые другие вещи. Очень странно.