按数据属性查找并填写输入字段

stu*_*oid 2 rspec ruby-on-rails capybara

我想通过“测试”数据属性查找元素并将它们填写如下:

When(/^I sign in with valid credentials$/) do
  email = page.find("data-test='email'")
  password = page.find("data-test='password'")
  fill_in email, with: @user.email
  fill_in password, with: @user.password
  submit = page.find("[data-test='submit']")
  submit.click
end
Run Code Online (Sandbox Code Playgroud)

该按钮工作正常,但输入会引发以下错误:

Unable to find field #<Capybara::Element tag="input"> (Capybara::ElementNotFound)
Run Code Online (Sandbox Code Playgroud)

有没有办法在水豚中做到这一点?在此先感谢您的帮助。

Ali*_*eza 5

fill_in方法接受元素的 id、名称或标签文本,因此它可能不适用于 find 方法返回的结果。在您的情况下,请尝试以下set方法:

find("input[data-test='email']").set(@user.email)
Run Code Online (Sandbox Code Playgroud)