【问题标题】:Capybara not able to recognize ajax loaded elements.?Capybara 无法识别 ajax 加载的元素。?
【发布时间】:2012-05-30 13:23:28
【问题描述】:

在我的 Rails 3 应用程序中,我的 HTML 页面上有一个“image”,它在 html 中创建了一个“div”元素页面,当点击时。

我必须通过 RSpec 测试这个新“div”的创建(并且我正在使用 Capybara 进行基于视图的测试)。

我写了以下代码:

it "clicks the extended details button" do
    Capybara.default_wait_time = 5
    within('.table_expand') do
      find("#img_dealer_code_04039").click
      should have_selector('#extended_details_04039')
    end
end

是的,我已经在对应的describe 中添加了:js=>true

我认为问题出在 Ajax 时间,所以我添加了 Capybara.default_wait_time = 5 以使其正确加载。 (但它没有工作)

我还尝试将 :visible=>true 放在应该 have_selector('#extended_details_04039') 的行中,但没有成功..

我有什么遗漏的吗??

请帮帮我...我被这个困扰了很长时间..!!

【问题讨论】:

  • 你用的是哪个capybara驱动?
  • selenium.. 但我也尝试过使用 webkit..!!

标签: ruby-on-rails ruby view capybara


【解决方案1】:

https://github.com/rspec/rspec-rails/issues/478

您确定站点上没有重复的 ID 吗? 尝试将其保存到文件并检查来源是否有重复。

要查看页面上发生的情况,请尝试 page.save_and_open_page 方法

【讨论】:

  • 不,我在 html 中没有任何重复的 ID。不过我会尝试保存并打开页面的方法。
【解决方案2】:

img 是您 ID 的一部分还是标签类型?我相信你应该有

find("img#dealer_code_0409").click

【讨论】:

  • 我认为图像上的“点击”是有效的。因为那行没有错误。但由于“div”是动态生成的,它无法识别它。跨度>
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
相关资源
最近更新 更多