gpt4 book ai didi

ruby-on-rails - capybara :fill_in Action 定位器

转载 作者:行者123 更新时间:2023-12-04 05:44:20 26 4
gpt4 key购买 nike

所以我有这个规范

describe "visit /signup" do
before(:each) do
get signup_path
end
it "has an email input field" do
page.has_field?("#user_email")
end
it "accepts an email address" do
page.fill_in('#user_email', :with=>Faker::Internet.email)
end
end

第一个测试(有一个电子邮件输入)通过,第二个失败

Failure/Error: page.fill_in('#user_email', :with=>Faker::Internet.email)
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label '#user_email' found

input[type='text'] 元素存在于具有该 DOM ID 的页面上,已尝试使用带哈希和不带哈希的 ID 进行定位,并将其 input:name 也用作定位器。

我做错了什么?

最佳答案

这是因为当您应该在 before block 中使用 visit 时,您使用了 get。这:

before(:each) do
get signup_path
end

应该是这样的:

before(:each) do
visit signup_path
end

否则,您是在告诉 Rack::Test 访问该路径,不是 Capybara!一个小区别经常让很多人绊倒!

关于ruby-on-rails - capybara :fill_in Action 定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7344089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com