react$$
The react$$
command is a useful command to query multiple React Components
by their actual name and filter them by props and state.
info
The command only works with applications using React v16.x. Read more about React selectors in the Selectors guide.
Usage
$(selector).react$$(selector, { props, state })
Parameters
Name | Type | Details |
---|---|---|
selector | String | of React component |
options optional | ReactSelectorOptions | React selector options |
options.props optional | Object | React props the element should contain |
options.state optional | Array.<any> , number , string , object , boolean | React state the element should be in |
Example
- Asynchronous Mode
- Synchronous Mode
pause.js
it('should calculate 7 * 6', async () => {
await browser.url('https://ahfarmer.github.io/calculator/');
const orangeButtons = await browser.react$$('t', {
props: { orange: true }
})
console.log(await orangeButtons.map((btn) => btn.getText()));
// prints "[ '÷', 'x', '-', '+', '=' ]"
});
pause.js
it('should calculate 7 * 6', () => {
browser.url('https://ahfarmer.github.io/calculator/');
const orangeButtons = browser.react$$('t', {
props: { orange: true }
})
console.log(orangeButtons.map((btn) => btn.getText()));
// prints "[ '÷', 'x', '-', '+', '=' ]"
});
caution
Synchronous Mode will depcrecated with Node.js v16. With an update to the underlying Chromium version it became technically impossible to provide the same synchronous behavior. We recommend to start transition to asynchronous command execution. For more information, see our RFC.