Я написал небольшой фрагмент кода для встроенных полей таблицы редактирования. Когда пользователь нажимает, элемент удаляется и на его месте создается поле 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
.
С другой стороны, я написал функциональный тест в intern 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()
;
)};
Проблема заключается в том, что тест не выполняется с исключениями как на хром, так и на 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