2015-08-07 5 views
3

Я пишу несколько простых тестов для моих Реагировать компоненты с использованием TestUtils, и я нахожу, что оба TestUtils.FindRenderedDOMComponentWithClass и TestUtils.FindRenderedDOMComponentWithTag методы довольно ограничения. Я хотел бы найти компонент, используя типичный селектор CSS (т. Е. tag.class [attr]), но это не похоже, что это вариант.Найти компонент с помощью селектора CSS в TestUtils

Есть ли простой способ найти элемент с определенным атрибутом? Если нет полезных инструментов для нахождения компонентов, кроме TestUtils?

+0

Я знаю, что JQuery добавлена ​​поддержка Node.js на 2.1.x. Кто-нибудь проверил, что он используется вместе с React Test Utils? Я думаю, что jQuery больше не лучший вариант для клиента. Но это был бы адский инструмент для Angular and React на сервере –

+0

Это нереально http://blog.sodhanalibrary.com/2016/11/reacttestutils-find-element-by.html#.Wfh8EhO0Oi4 – zloctb

ответ

0

React.TestUtils делает не поиски предложения компонентов с CSS селекторов, так что я пошел с легким расширением основного TestUtils класса под названием react-testutils-addition. Он предлагает метод find(), который анализирует ввод стиля селектора CSS и использует TestUtils.findAllInRenderedTree для поиска компонента.

1

Мне удобно использовать метод браузера Element.querySelector()/querySelectorAll() для элементов DOM.

Вы можете просто позвонить, например, так:

var domElement = FindRenderedDOMComponentWithClass('myClass'); 
var firstTextInput = domElement.querySelector('input[type="text"]');