Class: Playwright::Selectors
- Inherits:
-
PlaywrightApi
- Object
- PlaywrightApi
- Playwright::Selectors
- Defined in:
- lib/playwright_api/selectors.rb
Overview
Selectors can be used to install custom selector engines. See [Working with selectors](./selectors.md) for more information.
Instance Method Summary collapse
-
#off(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#on(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#once(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#register(name, contentScript: nil, path: nil, script: nil) ⇒ Object
An example of registering selector engine that queries elements based on a tag name:.
Methods inherited from PlaywrightApi
Constructor Details
This class inherits a constructor from Playwright::PlaywrightApi
Instance Method Details
#off(event, callback) ⇒ Object
– inherited from EventEmitter –
48 49 50 |
# File 'lib/playwright_api/selectors.rb', line 48 def off(event, callback) event_emitter_proxy.off(event, callback) end |
#on(event, callback) ⇒ Object
– inherited from EventEmitter –
60 61 62 |
# File 'lib/playwright_api/selectors.rb', line 60 def on(event, callback) event_emitter_proxy.on(event, callback) end |
#once(event, callback) ⇒ Object
– inherited from EventEmitter –
54 55 56 |
# File 'lib/playwright_api/selectors.rb', line 54 def once(event, callback) event_emitter_proxy.once(event, callback) end |
#register(name, contentScript: nil, path: nil, script: nil) ⇒ Object
An example of registering selector engine that queries elements based on a tag name:
“‘python sync from playwright.sync_api import sync_playwright
def run(playwright):
tag_selector = """
{
// Returns the first element matching given selector in the root's subtree.
query(root, selector) {
return root.querySelector(selector);
},
// Returns all elements matching given selector in the root's subtree.
queryAll(root, selector) {
return Array.from(root.querySelectorAll(selector));
}
}"""
# Register the engine. Selectors will be prefixed with "tag=".
playwright.selectors.register("tag", tag_selector)
browser = playwright.chromium.launch()
page = browser.new_page()
page.set_content('<div><button>Click me</button></div>')
# Use the selector prefixed with its name.
= page.query_selector('tag=button')
# Combine it with other selector engines.
page.click('tag=div >> text="Click me"')
# Can use it in any methods supporting selectors.
= page.eval_on_selector_all('tag=button', 'buttons => buttons.length')
print()
browser.close()
with sync_playwright() as playwright:
run(playwright)
“‘
42 43 44 |
# File 'lib/playwright_api/selectors.rb', line 42 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 |