Selectors

Selectors allow you to identify elements on the page when extracting data or interacting with the page.

For example, if you want Browserflow to click on a certain button on the page, it needs to know which button to click. The selector button:contains("Submit") would tell Browserflow to click on a <button> HTML element with the text "Submit".

Generating selectors

Ways to generate selectors:

  1. Recording actions

  2. Using the "Select" button

  3. Writing your own selector

Recording actions

When recording a flow, Browserflow will automatically generate selectors for the elements you interact with.

Using the "Select" button

In the Browserflow editor, you'll find a "Select" button next to the selector field in any command that requires a selector:

Clicking the "Select" button will trigger the element picker on the current page. When you click on an element, Browserflow will automatically generate a selector for that element.

Writing your own selector

In addition to all normal CSS selectors, Browserflow supports a few non-standard psuedo-selectors:

  • :contains - Allows selecting an element by its text contents

    • e.g. A button with the text "Submit": button:contains("Submit")

  • :has - Allows selecting an element by the elements it contains

    • e.g. Tweets that embed an external link: [data-testid="tweet"]:has(a[href*="https://t.co/"])

Creating robust selectors

TODO