0
我讀過類似的問題,但他們不能解決我的問題。我是js測試新手,所以我認爲我可能做錯了什麼。水豚:: ElementNotFound:無法找到字段「密鑰名稱」
形式產生這個HTML
<form class="new_category_item_key" id="new_category_item_key" action="/guides/dungeon-boss/categories?category_id=heroes" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="b7wiF07zYh/Nl727M3y0Uk1TbroMJFuGqTK6fYNlNted/5G4Wmz4BZLb7IazzyP5md/wWRb1D28ePhrzt2uMSA==" />
<label for="category_item_key_name">Key name</label>
<input type="text" name="category_item_key[name]" id="category_item_key_name" />
<select name="category_item_key[key_type]" id="category_item_key_key_type"><option value="1">Value</option>
<option value="2">Text</option>
<option value="3">Image</option></select>
<input type="submit" name="commit" value="Add New Key" />
</form>
,我有以下的集成測試形式
setup do
@user = users(:michael)
@user1 = users(:archer)
@guide = Guide.find(1)
@mod_relationship = game_mods_relationships(:mod1)
@category = Category.find(1)
Capybara.current_driver = Capybara.javascript_driver # :selenium by default
end
test "adding keys mod success then fail" do
log_in_as(@user)
get edit_guide_category_path(@guide, @category)
assert_template 'categories/edit'
assert_difference 'CategoryItemKey.count', 1 do
fill_in 'Key name', with: "diablo"
click_button "commit"
end
end
,當我運行測試,我得到以下錯誤
Capybara::ElementNotFound: Capybara::ElementNotFound: Unable to find field "Key name"
看看HTML我可以看到字段是t這裏。如果我嘗試使用輸入id
它仍然失敗,如果我刪除填充行,然後它說它不能找到按鈕來點擊哪裏也是。我假設它得到正確的頁面,因爲get edit_guide_category_path(@guide, @category)
適用於其他測試(但它們是非js測試並且不使用硒)。
它可能是簡單的東西,但我不能得到它。
謝謝你的工作。此外,我應該使用什麼,而不是斷言模板?我想讓站點加載正確的頁面 – Rob
在功能測試中,您檢查頁面的內容 - assert_text('頁面上的一些文本內容')等 –
太棒了。感謝提示 – Rob