2014-10-28 61 views
1

我想找到一個「測試」數據元素的屬性,並填寫他們在這樣的:查找和輸入字段填補數據屬性

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 

按鈕做工精細,但投入會引發以下錯誤:

Unable to find field #<Capybara::Element tag="input"> (Capybara::ElementNotFound) 

有沒有辦法在水豚做到這一點?先謝謝您的幫助。

回答

3

fill_in方法接受元素的ID,名稱或標籤文本,所以它可能無法處理find方法返回的結果。在你的情況下,嘗試將set方法:

find("input[data-test='email']").set(@user.email) 
+0

'fill_in'接受元素的id,名稱或標籤文本,所以它可能不是,結果工作'find'方法返回。在你的情況下,嘗試'set'方法:'find(「input [data-test ='email']」)。set(@ user.email)' – Alireza 2014-10-28 17:19:53

+0

這太棒了。它工作完美。非常感謝。 – sturoid 2014-10-28 17:28:53