この厳しいテストでは、@notesでログエントリを作成し、@notesを@updated_notesに置き換えてログを更新しようとします。capybara受け入れテスト - UIの検査から正しい要素を選択する方法
@notes = Faker::Crypto.md5
@updated_notes = Faker::Crypto.sha256
ログエントリを作成するためのコードブロックです。ソースコード内のdivのIDとそのIDを検査で使用しました。
it 'User can update manpower log entry' do
# create a new entry
within '#manpower_log_div' do
find('#manpower_log_notes').send_keys(@notes)
click_button "+ Add"
expect(page.has_css?('td', @notes)).to be true
end
ここでは、ページ上の既存のメモをクリックして編集します。エラーが受信
# click the already existing notes to be able to edit them
within '#manpower_log_div' do
find('#inline_edit').click
end
要素を点検
Capybara::ElementNotFound:
Unable to find css "#inline_edit"
は私達にこれを与えるが、オブジェクトのidがあまりにも特定され気づかされます。データのobject_id =「11747753」。このテストを実行するたびに、私はどの要素を使用して見つけることができますか?
<span textarea_cols="50" class="inline_textarea_edit inline_editable" data-object_field="notes" data-object_id="11747753" data-object_class="ManpowerLog" data-custom_callback="" id="ManpowerLog-11747753-notes" data-value_required="false">a5c3e556f108fd29b00150ca736c82d6</span>
あまりにも私の理解されていますが、それは常に動作しないこと。私はあなたの例を試して、同じエラーを受け取りました:ElementNotFound。 – user9503053
このエラーが発生した場合、その要素はページ上にないか、ページ上に表示されません。実際に存在する要素を確認するには 'page.html'を出力してください –