【问题标题】:rspec click a spanrspec 单击一个跨度
【发布时间】:2013-03-23 20:27:13
【问题描述】:

我正在使用 rspec 测试一些页面,并想使用 click 方法。但是 DOM 没有链接或按钮。它只是一个跨度,神奇地变成了与 javascript 的链接。

<span class="footerLink feedbackLink">
    Feedback
</span>

rspec 提供“click_link”和“click_button”

有什么想法可以点击跨度吗?

【问题讨论】:

  • 当你说“神奇地变成一个链接”时,你的意思是你用 Javascript 附加了一个 onclick 处理程序,或者你在一些 Javascript 代码运行后将元素类型更改为一个跨度的锚点?
  • 是的,很抱歉使用“魔法”。 onclick 甚至正在附加。坦率地说,我认为在那里有一个链接会更容易,但这是当前的设计

标签: javascript ruby-on-rails rspec capybara


【解决方案1】:

你应该可以的

find('.feedbackLink').click

find返回一个Element,Element类有一个#click方法。

由于您可能正在处理 Javascript 中的点击,请不要忘记在您的测试中添加 :js =&gt; true 作为元标记。

【讨论】:

  • 非常感谢您的回答:我添加了指定“发送反馈”,js: true do and find('.feedbackLink').click。但它会打开 Firefox。有没有办法像 rspec 中的任何其他测试一样跳过它并运行它?
  • @SarahA 不幸的是,如果它依赖于 Javascript,它需要在浏览器中运行。好消息是浏览器不必是 Firefox——Poltergeist 是几个无头选项之一。
  • 是的,你可以忽略 js 规范:rspec --tags ~js 而 Capybara(RSpec 的测试后端)可以使用 github.com/thoughtbot/capybara-webkit 什么是无头版本的 WebKit 渲染引擎。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多