我有一個網頁遊戲,在使用javascript和jquery的輸入字段中顯示值。我期待測試的值在頁面上可見。但是,如果我檢查元素,該值不會出現在HTML中。水豚在頁面上找不到價值
下面是一些JS代碼,並將其值:
function updateTotal(){
$('#edit-game-result').val(game.totalScore);
}
這裏是HTML的輸入字段:
<input type="text" id="edit-game-result" size="10" maxlength="3" class="form-text" readonly/>
我已經試過水豚測試,如:
預期(find_field ('edit-game-result')。value).to eq 10
該測試找到該字段,但給出outp UT: 預期:10有:無
我認爲這是某種由於這樣的: Is the HTML is View Source different from the HTML in Inspect Element? ,但我不能找到一種方法,使水豚讀值。
這可能也與此有關: http://ahmednadar.github.io/12/09/2013/overwrite-how-Capybara-ignores-hidden-elements/
我相信場確實在測試運行時具有值10。但是,我無法在水豚測試中使用該值。
你能幫我找到一個水豚測試,可以解釋爲什麼這不起作用嗎?
感謝您的回覆。我試過,但得到了: '失敗/錯誤:expect(page).to have_field('edit-game-result',':''012') 預計會發現字段「編輯遊戲結果」值爲「10 「但沒有匹配。還發現「」,它與匹配選擇符但不是所有濾鏡相匹配。「 – jeebee
@jeebee然後,當您檢查它時,字段在Capybara.default_max_wait_time秒內的值不會爲'10',或者它在頁面上不可見。您可以通過將'visible:false'選項傳遞給'have_field'來檢查一個不可見的元素,但是您確實不應該依賴於檢查測試中的不可見元素。除此之外,顯示你的測試的其餘部分,所以我們可以看到你在做什麼 –
嗨托馬斯 我的代碼是在這裏: https://github.com/glynester/bowling-challenge/blob/last_frame/spec/ features/game_play_spec.rb 我嘗試了許多組合,包括添加「visible:false」,但它沒有奏效。我甚至在spec_helper.rb中爲水豚添加了10秒的等待時間。 感謝您的期待。 – jeebee