Webrat验证iframe或框架集中的内容

时间:2010-01-04 20:44:42

标签: cucumber webrat frameset

我正在使用Cucumber + Webrat + Mechanize适配器,并希望测试iframed或框架到所选页面的页面内容。

换句话说:

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 :(得分:0)

这将回答问题的第一部分

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

答案 1 :(得分:0)

你实际上不必这样做。因为您的浏览器已经自动加载了框架,所以您只需要告诉selenium(以及webrat)您要查看哪个框架。

When /^I select the "(.*)" frame$/ do |name|
  selenium.select_frame("name=#{name}")
end

答案 2 :(得分:0)

在步骤定义中尝试此操作:

within_frame("headerid") do 
  assert page.has_content? "login details"
end