class Playwright::Selectors

information.
Selectors can be used to install custom selector engines. See [Working with selectors](./selectors.md) for more

def event_emitter_proxy

def event_emitter_proxy
_emitter_proxy ||= EventEmitterProxy.new(self, @impl)

def off(event, callback)

@nodoc
-- inherited from EventEmitter --
def off(event, callback)
  event_emitter_proxy.off(event, callback)
end

def on(event, callback)

@nodoc
-- inherited from EventEmitter --
def on(event, callback)
  event_emitter_proxy.on(event, callback)
end

def once(event, callback)

@nodoc
-- inherited from EventEmitter --
def once(event, callback)
  event_emitter_proxy.once(event, callback)
end

def register(name, contentScript: nil, path: nil, script: nil)

```
run(playwright)
with sync_playwright() as playwright:

browser.close()
print(button_count)
button_count = page.locator('tag=button').count()
# Can use it in any methods supporting selectors.
page.click('tag=div >> text="Click me"')
# Combine it with other selector engines.
button = page.locator('tag=button')
# Use the selector prefixed with its name.

page.set_content('
')
page = browser.new_page()
browser = playwright.chromium.launch()
playwright.selectors.register("tag", tag_selector)
# Register the engine. Selectors will be prefixed with "tag=".

}"""
}
return Array.from(root.querySelectorAll(selector));
queryAll(root, selector) {
// Returns all elements matching given selector in the root's subtree.
},
return root.querySelector(selector);
query(root, selector) {
// Returns the first element matching given selector in the root's subtree.
{
tag_selector = """
def run(playwright):

from playwright.sync_api import sync_playwright
```python sync

An example of registering selector engine that queries elements based on a tag name:
def register(name, contentScript: nil, path: nil, script: nil)
  wrap_impl(@impl.register(unwrap_impl(name), contentScript: unwrap_impl(contentScript), path: unwrap_impl(path), script: unwrap_impl(script)))
end