Webrat проверяет содержимое в iframe или frameset - PullRequest
0 голосов
/ 04 января 2010

Я использую адаптер Cucumber + Webrat + Mechanize и хочу проверить содержимое страниц, которые вставлены или вставлены в выбранную страницу.

Другими словами:

Scenario: View header on webpage
  Given I visit a page containing a frameset
  When there is a header frame
  Then I should see login details in frame header

Проблема, конечно, последний шаг: мне нужно перейти к заголовку фрейма и изучить его содержимое. Я могу убедиться, что тег кадра здесь

response_body.should have_selector "frame[src][name=header]"

Это оставляет мне два вопроса:

  1. Как прочитать атрибут src и перейти на эту страницу
  2. Как вернуться на исходную страницу

Ответы [ 3 ]

0 голосов
/ 20 января 2010

вы на самом деле не должны делать это таким образом. Поскольку ваш браузер уже загружает фреймы автоматически, вам просто нужно сказать селену (и, следовательно, вебрату), на какой фрейм вы хотите посмотреть.

When /^I select the "(.*)" frame$/ do |name|
  selenium.select_frame("name=#{name}")
end
0 голосов
/ 12 августа 2010

попробуйте это в определении шага:

within_frame("headerid") do 
  assert page.has_content? "login details"
end
0 голосов
/ 05 января 2010

Это ответило бы на первую часть вопроса

Then /^I should see login details in frame header$/ do
  within 'frame[name=header]' do |frame|
    frame_src = frame.dom.attributes["src"].value
    visit frame_src
    response_body.should contain "Log in with digital certificate"
    response_body.should_not contain "Log out"
  end
end
...