Capybara不关心event.preventDefault

时间:2017-10-06 12:05:51

标签: ruby-on-rails testing selenium-webdriver rspec capybara

使用RSpec,Capybara和Selenium测试Ruby on Rails应用程序。

我想点击一个href但由于event.preventDefault而无法领先的锚点。尽管如此,该链接将测试引导至链接页面,而不是保留在当前页面上。

我的第一印象是Javascript无效。除了其他测试,我可以看到Firefox做了一些事情,但我可以对这个特定的测试说同样的事情。有什么我想念的吗?

如果我在虚拟应用event.preventDefault上测试页面按预期工作。

目前的测试是:

describe "In field group editor, user", type: :feature do

    let(:user) { User.first }

    before(:context) do
        @structure = create(:structure)
    end

    it "should be able to create a checkbox" do
        sign_in user

        # should be login page
        save_and_open_page # and it is

        path_to_structure = edit_structure_path( structure_id: @structure.slug )
        visit path_to_structure

        find "#add-new-setting"

        # should be structure page
        save_and_open_page # and it is

        click_on "add-new-setting" # this should fire an ajax call and preventDefault link behaviour

        # should be still structure page
        save_and_open_page # instead capybara it's gone to the new setting page

        # ...
    end
end

1 个答案:

答案 0 :(得分:0)

我忘了在初始说明中添加js: true

BTW我没有删除这个问题,因为其他人可能会浪费时间寻找解决类似问题而没有意识到解决方案就这么简单了!