Найти элемент по идентификатору в реагирующей-тестирующей библиотеке - PullRequest
0 голосов
/ 26 октября 2018

Я использую реагировать-тестирование-библиотекарь , чтобы проверить мое приложение реагирования.По какой-то причине мне нужно найти элемент по id, а не data-testid.Нет никакого способа достигнуть этого в документации.

Есть ли способ достигнуть этого?

Я вывел вывод как:

const dom = render(<App />);

I 'ищу что-то в строке:

const input = dom.getElemenById('firstinput');
//or 
const input = dom.getById('firstinput');

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

Я нашел способ сделать это.

import App from './App';
import { render, queryByAttribute } from 'react-testing-library';

const getById = queryByAttribute.bind(null, 'id');

const dom = render(<App />);
const table = getById(dom.container, 'directory-table');

Надеюсь, это поможет.

0 голосов
/ 26 октября 2018

Есть два способа сделать это

  1. Просто используйте container.getElementById('id').В конце концов, все, что делают помощники, это делает запросы, подобные этому, под капотом
  2. Если вы хотите создать свой собственный запрос, вы можете написать собственный рендер.Обратитесь к документации для получения дополнительной информации https://github.com/kentcdodds/react-testing-library#getbytestidtext-textmatch-htmlelement

В качестве последнего замечания, если вы можете избежать поиска элементов по id, лучше.

0 голосов
/ 26 октября 2018

Похоже, у вас есть сам DOM-узел в виде контейнера .Следовательно, вы должны быть в состоянии звонить .querySelector('#firstinput') с этим.

...