> For the complete documentation index, see [llms.txt](https://docs.zerowork.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zerowork.io/using-zerowork/using-selectors/how-to-build-custom-selectors.md).

# How to Build Custom Selectors

If copying selector does not produce reliable results, you need to build your own selector. We strongly recommend you to learn how to build your own selectors. Building custom selectors will allow you to create truly robust TaskBots that work reliably over time. Maybe you have tried other RPA or bot builder tools and are frustrated why bots break or do not work reliably over time. The answer is almost always this: You need more robust selectors, simply copying them is often not enough. And it's even more true if you build automations for social media.&#x20;

The great news is that you **do not need any coding skills** to learn how to do it!&#x20;

Here is what you need to learn in order to build your own selectors. Scroll below to find the video crash course as well.

**Note**: As mentioned earlier, ZeroWork supports both CSS and XPath selectors, but in this guide we will focus only on CSS selectors. More details on XPath: [How to Use XPath in ZeroWork (advanced)](/using-zerowork/using-selectors/how-to-use-xpath-in-zerowork-advanced.md).

{% content-ref url="/pages/r45r9ZgRfD5Y4ouScZtL" %}
[Basic Concepts of Selectors](/using-zerowork/using-selectors/how-to-build-custom-selectors/basic-concepts-of-selectors.md)
{% endcontent-ref %}

{% content-ref url="/pages/g8BCqzXrAB4jIcjq6yYJ" %}
[One Element Can Have Many Selector Expressions](/using-zerowork/using-selectors/how-to-build-custom-selectors/one-element-can-have-many-selector-expressions.md)
{% endcontent-ref %}

{% content-ref url="/pages/EKDG69w9MaaOt2RmZmVf" %}
[Check if Selector Is Correct and Unique](/using-zerowork/using-selectors/how-to-build-custom-selectors/check-if-selector-is-correct-and-unique.md)
{% endcontent-ref %}

{% content-ref url="/pages/b25igL4a0x2d3SuX7Bmc" %}
[Exact or Loose Match](/using-zerowork/using-selectors/how-to-build-custom-selectors/exact-or-loose-match.md)
{% endcontent-ref %}

{% content-ref url="/pages/sZ659tUB2Mv5DXB4GroP" %}
[Hierarchy](/using-zerowork/using-selectors/how-to-build-custom-selectors/hierarchy.md)
{% endcontent-ref %}

{% content-ref url="/pages/D3BbkTscxEK0urqT4CiV" %}
[Combine Filters with Standard CSS Logic](/using-zerowork/using-selectors/how-to-build-custom-selectors/combine-filters-with-standard-css-logic.md)
{% endcontent-ref %}

{% content-ref url="/pages/RaYYEU4A1n2vwZuFjllO" %}
[Lists: Incremental CSS Selectors](/using-zerowork/using-selectors/how-to-build-custom-selectors/lists-incremental-css-selectors.md)
{% endcontent-ref %}

{% content-ref url="/pages/JKf5KYiQShwVu8fMCDXk" %}
[Addressing Siblings](/using-zerowork/using-selectors/how-to-build-custom-selectors/addressing-siblings.md)
{% endcontent-ref %}

### Selector Crash Course: Complete Guide

{% embed url="<https://www.youtube.com/playlist?list=PL7X7ThrPNPJCVC6Df3M_d7tqeRQWPmF2r>" %}
