Capybara无法识别ajax加载的元素。

时间:2012-05-30 13:23:28

标签: ruby-on-rails ruby view capybara

在我的 Rails 3 应用程序中,我的HTML页面上有一个“图像”,这会在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

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

我认为问题是Ajax时间,所以我添加了Capybara.default_wait_time = 5来正确加载。 (但它没有用)

此外,我尝试将:visible=>true放入have_selector('#extended_details_04039'),但没有成功..

有什么我想念的吗?? ??

请帮助我......很长一段时间我都坚持这个...... !!

2 个答案:

答案 0 :(得分:3)

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

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

要查看页面上发生了什么,请尝试 page.save_and_open_page方法

答案 1 :(得分:0)

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

find("img#dealer_code_0409").click