Class SharedSelectors

java.lang.Object
com.microsoft.playwright.impl.LoggingSupport
com.microsoft.playwright.impl.SharedSelectors
All Implemented Interfaces:
Selectors

public class SharedSelectors extends LoggingSupport implements Selectors
  • Field Details

  • Constructor Details

    • SharedSelectors

      public SharedSelectors()
  • Method Details

    • register

      public void register(String name, String script, Selectors.RegisterOptions options)
      Description copied from interface: Selectors
      Selectors must be registered before creating the page.

      **Usage**

      An example of registering selector engine that queries elements based on a tag name:

      
       // Script that evaluates to a selector engine instance. The script is evaluated in the page context.
       String createTagNameEngine = "{\n" +
         "  // Returns the first element matching given selector in the root's subtree.\n" +
         "  query(root, selector) {\n" +
         "    return root.querySelector(selector);\n" +
         "  },\n" +
         "  // Returns all elements matching given selector in the root's subtree.\n" +
         "  queryAll(root, selector) {\n" +
         "    return Array.from(root.querySelectorAll(selector));\n" +
         "  }\n" +
         "}";
       // Register the engine. Selectors will be prefixed with "tag=".
       playwright.selectors().register("tag", createTagNameEngine);
       Browser browser = playwright.firefox().launch();
       Page page = browser.newPage();
       page.setContent("<div><button>Click me</button></div>");
       // Use the selector prefixed with its name.
       Locator button = page.locator("tag=button");
       // Combine it with built-in locators.
       page.locator("tag=div").getByText("Click me").click();
       // Can use it in any methods supporting selectors.
       int buttonCount = (int) page.locator("tag=button").count();
       browser.close();
       
      Specified by:
      register in interface Selectors
      Parameters:
      name - Name that is used in selectors as a prefix, e.g. {name: 'foo'} enables foo=myselectorbody selectors. May only contain [a-zA-Z0-9_] characters.
      script - Script that evaluates to a selector engine instance. The script is evaluated in the page context.
    • register

      public void register(String name, Path path, Selectors.RegisterOptions options)
      Description copied from interface: Selectors
      Selectors must be registered before creating the page.

      **Usage**

      An example of registering selector engine that queries elements based on a tag name:

      
       // Script that evaluates to a selector engine instance. The script is evaluated in the page context.
       String createTagNameEngine = "{\n" +
         "  // Returns the first element matching given selector in the root's subtree.\n" +
         "  query(root, selector) {\n" +
         "    return root.querySelector(selector);\n" +
         "  },\n" +
         "  // Returns all elements matching given selector in the root's subtree.\n" +
         "  queryAll(root, selector) {\n" +
         "    return Array.from(root.querySelectorAll(selector));\n" +
         "  }\n" +
         "}";
       // Register the engine. Selectors will be prefixed with "tag=".
       playwright.selectors().register("tag", createTagNameEngine);
       Browser browser = playwright.firefox().launch();
       Page page = browser.newPage();
       page.setContent("<div><button>Click me</button></div>");
       // Use the selector prefixed with its name.
       Locator button = page.locator("tag=button");
       // Combine it with built-in locators.
       page.locator("tag=div").getByText("Click me").click();
       // Can use it in any methods supporting selectors.
       int buttonCount = (int) page.locator("tag=button").count();
       browser.close();
       
      Specified by:
      register in interface Selectors
      Parameters:
      name - Name that is used in selectors as a prefix, e.g. {name: 'foo'} enables foo=myselectorbody selectors. May only contain [a-zA-Z0-9_] characters.
      path - Script that evaluates to a selector engine instance. The script is evaluated in the page context.
    • setTestIdAttribute

      public void setTestIdAttribute(String attributeName)
      Description copied from interface: Selectors
      Defines custom attribute name to be used in Page.getByTestId(). data-testid is used by default.
      Specified by:
      setTestIdAttribute in interface Selectors
      Parameters:
      attributeName - Test id attribute name.
    • addChannel

      void addChannel(SelectorsImpl channel)
    • removeChannel

      void removeChannel(SelectorsImpl channel)
    • registerImpl

      private void registerImpl(String name, String script, Selectors.RegisterOptions options)