Удалить значение из ввода даты HTML5 с помощью TestCafe? - PullRequest
2 голосов
/ 21 июня 2019

Я не могу удалить значение из HTML5 ввода даты с помощью TestCafe после его установки. Я пробовал typeText и pressKey до сих пор; typeText работает для установки новой даты, но не может вводить пустую строку, хотя использование delete и backspace с pressKey не удаляет значение, как при ручном выполнении того же действия. Я также не могу / не знаю, как щелкнуть крестиком на самом поле.

Что-то я пропускаю / делаю неправильно, или это невозможно?

TypeText

test('typeText', async t => {
    await t
        .typeText('#dateField', '', { replace: true });

    await t
        .expect(Selector('#dateField').value).eql('');
});

1) The "text" argument is expected to be a non-empty string, but it was "".

pressKey

test('pressKey', async t => {
    await t
        .click('#dateField')
        .pressKey('delete'); // 'backspace' also does not work

    await t
        .expect(Selector('#dateField').value).eql('');
});

1) AssertionError: expected '2019-05-02' to deeply equal ''

1 Ответ

3 голосов
/ 24 июня 2019

В соответствии с форматами набора текста TestCafe для ввода HTML5 вы можете использовать действие typeText следующим образом:

test('test', async t => {
    await t
        .typeText('#start', '2017-12-23')
        .expect(Selector('#start').value).eql('2017-12-23')
 
        .typeText('#start', '    -  -  ')
        .expect(Selector('#start').value).eql('');
});
...