Capybara在功能测试中找不到字段

时间:2017-03-05 23:10:09

标签: rspec capybara

你可以帮忙解决这个问题吗?

Capybara无法找到"文章[标题]"和"文章[正文]",在以下特征测试中:

feature "Creating Articles" do

scenario "A user creates a new article" do
    visit '/'

    click_link("New Article")
    fill_in "article[title]",     with: "title"
    fill_in "article[body]",      with: "article body"
    click_button "Create Article"

    expect(page).to have_content "title"
    expect(page).to have_content "article body"

end

这两个字段在页面源代码中显示为<input class="form-control" type="text" name="article[title]" id="article_title"><textarea class="form-control" name="article[body]" id="article_body" cols="60" rows="12"></textarea>

但RSpec一直显示此错误。

   Capybara::ElementNotFound:
   Unable to find field "article[title]"

感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

使用fill_in描述符的id可能会更好。 fill_in对其参数使用描述符,因此这些表单中的任何一个都应该起作用:

fill_in "article_title",     with: "title"
fill_in "article_body",      with: "article body" 

fill_in "id=article_title",     with: "title"
fill_in "id=article_body",      with: "article body" 

有关各种描述符的有用说明,请参阅此Selenium Tutorial。我保留这个标记为你的情况。