# custom$$

The `customs$$` allows you to use a custom strategy declared by using `browser.addLocatorStrategy`. Read more on custom selector stratgies in the [Selector docs](/docs/selectors.md#custom-selector-strategies).

## Usage[​](#usage "Direct link to Usage")

```
await $(selector).custom$$(strategyName, strategyArguments)
```

## Parameters[​](#parameters "Direct link to Parameters")

| Name                | Type     | Details |
| ------------------- | -------- | ------- |
| `strategyName`      | `string` |         |
| `strategyArguments` | `*`      |         |

## Example[​](#example "Direct link to Example")

example.js

```
it('should get all the plugin wrapper buttons', async () => {
    await browser.url('https://webdriver.io')
    await browser.addLocatorStrategy('myStrat', (selector) => {
        return document.querySelectorAll(selector)
    })

    const pluginRowBlock = await browser.custom$('myStrat', '.pluginRowBlock')
    const pluginWrapper = await pluginRowBlock.custom$$('myStrat', '.pluginWrapper')

    console.log(pluginWrapper.length) // 4
})
```

## Returns[​](#returns "Direct link to Returns")

* **\<WebdriverIO.ElementArray>**
