# 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>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zerowork.io/using-zerowork/using-selectors/how-to-build-custom-selectors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
