【问题标题】:Rspec+capybara request specs: testing form submit with invisible button: best way to make button invisible?Rspec+capybara 请求规范:使用不可见按钮测试表单提交:使按钮不可见的最佳方法?
【发布时间】:2012-07-25 16:14:27
【问题描述】:

我的应用上有一个单文本字段表单。我不想要一个可见的提交按钮(用户必须点击“输入”才能提交)。我知道您仍然希望该按钮具有可访问性,因此我将其移出屏幕。

我正在使用 Capybara 进行测试。当我click_on my-button 时,它给了我这个错误:

Failure/Error: click_on "gimme-your-cc"
 Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
   Element cannot be scrolled into view:[object HTMLInputElement]

该特定规范在 js: true 块内完成,因此它使用 webdriver 和 firefox。

有测试提交该按钮的好方法吗?将其设为按钮 display:hidden 也不起作用,我认为该解决方案无论如何都不是很容易访问。

【问题讨论】:

  • page.execute_script("$('#submit_id').click();")
  • 好答案,添加它,我会接受

标签: ruby-on-rails capybara


【解决方案1】:

一个好的解决方法是使用 javascript:

page.execute_script("$('#submit_id').click();")

【讨论】:

  • 这很好用。如果以下测试似乎不起作用,则在该调用之后可能需要sleep(1)
  • ^你可以使用wait_until来避免使用睡眠。
  • wait_until 在 Capybara 2.0 中已被弃用。 execute_script 解决方案也对我有用!
  • 提交格式为JS的表单。如何以 HTML 格式提交??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2017-03-26
相关资源
最近更新 更多