J'utilise react-testing-libarary pour tester mon application react. Pour une raison quelconque, je dois pouvoir trouver l'élément par id
et non data-testid
. Il n'y a aucun moyen d'y parvenir dans la documentation.
Existe-t-il un moyen d'y parvenir?
J'ai la sortie rendue comme:
const dom = render(<App />);
Je cherche quelque chose en ligne de:
const input = dom.getElemenById('firstinput');
//or
const input = dom.getById('firstinput');
J'ai trouvé un moyen de le faire.
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');
J'espère que ça aide.
Il semble que vous ayez un nœud DOM lui-même comme conteneur . Par conséquent, vous devriez pouvoir appeler .querySelector('#firstinput')
avec cela.
Il y a deux façons de le faire
container.getElementById('id')
. En fin de compte, tout ce que les assistants font est de faire des requêtes comme celle-ci sous le capotEnfin, si vous pouvez éviter de rechercher des éléments par id, c'est mieux.