0

我想测试电子邮件的正文。

它使用 FCK 编辑器,深度为 3 个 i 帧。

<...name="fancybox-frame"...>
    <iframe>
        <iframe>
             <body>H E R E  I S  W H A T   I   W A N T  T O   A C C E S S</body>
        </iframe>
    </iframe>
</[fancybox-frame]>

除了模棱两可的乐趣之外,我如何多次使用帧内。

如果我用这个...

within_frame('fancybox-frame') do
fill_in('frm_subject', :with => eventname + ' email')
within_frame('iframe[id="frm_message___Frame"]') do
  within_frame('iframe') do
    fill_in('body', :with => 'Event email for ' + now.to_s)
  end
end

结尾

我明白这个...

      switchFrame execution failed;
   INVALID_EXPRESSION_ERR: DOM XPath Exception 51 (Selenium::WebDriver::Erro
r::WebDriverError)
  ./features/step_definitions/RCST08_steps.rb:96:in `block (2 levels) in <to
p (required)>'
  ./features/step_definitions/RCST08_steps.rb:94:in `/^select a message to s
end\.$/'
  features\RCST08.feature:26:in `And select a message to send.'

有任何想法吗?

4

1 回答 1

2

在您“切换”到它之前,Selenium 无法解决框架(<IFRAME> 或 <FRAME>)内的任何内容。在 Ruby 绑定中,就是这样within_frame(...) do ... end做的。你似乎是你想成为的地方之外的一帧。你需要更多这样的东西:

within_frame('fancybox-frame') do
  fill_in('frm_subject', :with => eventname + ' email')
  within_frame('iframe[id="frm_message___Frame"]') do
    within_frame('...name of outer iframe...') do
      within_frame('...name of inner iframe...') do
        fill_in('body', :with => 'Event email for ' + now.to_s)
      end
    end
  end
end
于 2012-12-11T22:11:31.240 回答