Как набрать текст в текстовой области, которые имеют элемент Dynami c? - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу ввести текст в textarea, но не могу найти элемент, так как идентификатор - Dynami c, и если я использую класс, элемент будет видимым. Вот фрагмент кода элемента, вот UI . Я написал это на своем скрипте

let textArea = Selector('.block-card list-group-item text-card col-xs-12').find('textarea')
await t
    .typeText(textArea, 'Hai...')

Я получил ошибку:

The specified selector does not match any element in the DOM tree.

> | Selector('.block-card list-group-item text-card col-xs-12')
  |   .find('textarea')

Я также использую

let textArea = Selector('.hwt-container').find('textarea').withAttribute('class','text-card-text')

Все так же.

1 Ответ

1 голос
/ 03 апреля 2020

Попробуйте использовать метод hasClass вместо withAttribute.

ОБНОВЛЕНИЕ:

Вот мой пример теста:

60986279.html

<div id="cardList" class="list-group">
<div id="1585" class="block-card list-group-item text card col-xs-12">
<div class="hwt-container">
<div class="hwt-backgdrop">
<textarea id="1585" maxlength="640" spellcheck="false" placeholder="Enter Text" style="overflow: hidden; break-word;" class="text-card-text maxlengthBadge form-control"></textarea>
</div>
</div>
</div>
</div>

60986279.js

import { Selector} from 'testcafe';

fixture('fixture')
    .page('file:///path/60986279.html');

test('test', async t => {
    let textArea = Selector('.block-card').find('textarea')
    await t.typeText(textArea, 'Hai...')
});
...