Проблемы с сопоставлением классов с Capybara / RSpec - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь сопоставить атрибут класса, используя 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, все по-другому. Обычно это то же самое, но куча атрибутов класса исчезла так же, как и некоторые другие вещи. Очень странно.

...