我已經寫了一小段代碼爲內聯編輯表中的字段。當用戶點擊時,該元素被刪除,並在其位置創建一個input
字段。修改完成後,將input
場被移除,並創建與新的值的span
元件。讓我展示一些背景代碼。點擊之前如何清除Intern JS中的輸入字段?
HTML代碼:點擊後
<div>
<table id='mytable'>
<thead>
...
</thead>
<tbody id='mybody'>
...
<tr class="tr-edit even" role="row">
<td>escape substitution</td>
<td>TEXT</td>
<td>4</td>
<td id="268435506">
<span class="td-span-edit">hola</span>
</td>
</tr>
...
</tbody>
</table>
</div>
HTML代碼:
<div>
<table id='mytable'>
<thead>
...
</thead>
<tbody id='mybody'>
...
<tr class="tr-edit even" role="row">
<td>escape substitution</td>
<td>TEXT</td>
<td>4</td>
<td id="268435506">
<input class="td-input-edit" type="text" value='hola'/>
</td>
</tr>
...
</tbody>
</table>
</div>
的修改後的值被髮送到服務器時的輸入失焦,blur
的,或者當按下ENTER_KEY
時。
在另一方面我在實習生JS寫入功能測試來模擬這樣的內聯編輯。我的功能測試如下所示:
tdd.test('inline editing',function(){
return this.remote
.findById('268435506')
.then(function(param){
return this.parent
.moveMouseTo(param)
;
})
.click()
.clearValue()
.type('666')
.executeAsync(function(done){
promise
.then(function(){
done();
});
})
.getVisibleText()
.then(function(text){
assert.strictEqual(text,
'666',
'typed value should be stored');
})
.end()
;
)};
問題是測試在chrome和firefox上都會出現異常並失敗。
- 鉻:
InvalidElementState: invalid element state: Element must be user-editable in order to clear it
- 火狐:
UnknownError: Element must be user-editable in order to clear it.
我screenshot時出現異常,並輸入字段明確地專注。所以你應該可以編輯它。我試圖從鏈中刪除.clearValue()
調用,但是如期望的那樣,斷言失敗。
問題:如何測試這個行內編輯?
在leadfoot中沒有這樣的函數調用。至少我沒有看到它。無論如何,我發現我將很快提供答案的問題。 – KiaMorot