Capybara 验收测试(水豚)可';找不到我的提交按钮 问题: 如何让功能测试识别我的按钮? 说明:

Capybara 验收测试(水豚)可';找不到我的提交按钮 问题: 如何让功能测试识别我的按钮? 说明:,capybara,rspec-rails,acceptance-testing,Capybara,Rspec Rails,Acceptance Testing,我正在用Capybara编写一个验收测试,用于“用户可以将产品添加到购物清单”。 在我的设置中,我以用户身份登录,我可以单击当前购物列表,并被引导到带有新产品搜索输入的页面 然后我要求用鼠标单击按钮 单击按钮“搜索” “搜索”是“我的按钮”的名称,显示在页面上。当我运行实际的程序时,一切正常,但当我运行测试时,它总是告诉我它找不到搜索按钮 我所尝试的: 我已尝试在提交按钮上输入值而不是名称。 我还尝试输入按钮的id 我没有单击按钮,而是尝试将\n添加到输入字段以单击enter 当我实际运行程序

我正在用Capybara编写一个验收测试,用于“用户可以将产品添加到购物清单”。 在我的设置中,我以用户身份登录,我可以单击当前购物列表,并被引导到带有新产品搜索输入的页面

然后我要求用鼠标单击按钮 单击按钮“搜索”

“搜索”是“我的按钮”的名称,显示在页面上。当我运行实际的程序时,一切正常,但当我运行测试时,它总是告诉我它找不到搜索按钮

我所尝试的: 我已尝试在提交按钮上输入值而不是名称。
我还尝试输入按钮的id
我没有单击按钮,而是尝试将\n添加到输入字段以单击enter

  • 当我实际运行程序时,所有这些都可以工作,但在我的测试中它们不起作用。 这是我的密码!如果你有任何见解,我会很高兴的:)谢谢你
我的代码: 表格: 我认为主要的问题是,水豚正在寻找一个html标记,而不是作为按钮的输入。 在按钮部分的测试中,尝试使用

click_on 'Login'

你试过点击“提交搜索”按钮吗?是的。。。在单击submit之前,当我执行save_和open_页面时,它似乎也没有填充输入字段。但是我的程序应该在字段中没有任何内容的情况下仍然可以工作(它返回一个未找到的产品页面)。。。所以搜索(搜索按钮)继续,哈哈。
require 'spec_helper'

describe "a user can add a product to their shopping list" do 
    let!(:user_one) { FactoryGirl.create(:user) }
    let!(:households) do 
        user_one.shopping_lists.create!({
            title: "households",
            date: Date.today
        })
    end

    it "will add product to the list" do 
        login(user_one)
        click_link "View Shopping Lists"
        click_link "households"
        fill_in "search_input_field", with: "toothpaste"
        # save_and_open_page
        click_button "Search"
        # expect(page).to     
        # first(:button, "Add Item").click

        # expect(page).to have_button "Delete"
    end

    def login(user)
        visit root_path
        fill_in :email, with: user.email
        fill_in :password, with: user.password
        click_button "Login!"
    end

end
click_on 'Login'