我有一個默認空白的span元素,當頁面被javascript加載時更新。這很好用 - 不過assert_select似乎只能獲得最初的HTML - 在頁面加載完成之前。這是預期的行爲?我究竟做錯了什麼?在支架Rails 4 - assert_select不能使用javascript更新的元素
跨度元件產生_form.html.erb:
...
<span id="confirm_loaded"></span>
...
----在一個js文件中的應用程序/資產/ Javascript角:
$(function(){
$("#confirm_loaded").html("test");
});
----當我加載頁面 - 頁面通過JavaScript更新,一切都很好。
然而,在集成測試 - 這條線:
assert_select "span#confirm_loaded", {text: "test"}
失敗,出現錯誤:
<test> expected but was
<>..
Expected 0 to be >= 1.
這似乎證實了測試是沒有看到更新的HTML元素的設置javascript(可能是在頁面完全加載之前運行?)
快速更改頁面,刪除javascript和硬編碼HTML:
...
<span id="confirm_loaded">test</span>
...
現在測試通過(assert_select能夠獲得值,我們是金)。
assert_select是否只能得到HTML標籤的初始值?爲什麼在頁面加載時assert_select 而不是獲取由javascript更新的值?
感謝您的幫助。
請注意,爲了縮小這一點 - 我繼續前進,並刪除turbolinks寶石 – Gabriel