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#working-with-selectors) for more information.
Instance Method Summary collapse
-
#register(name, script, contentScript: nil) ⇒ Object
An example of registering selector engine that queries elements based on a tag name:.
Methods inherited from PlaywrightApi
Instance Method Details
#register(name, script, contentScript: nil) ⇒ Object
An example of registering selector engine that queries elements based on a tag name:
“‘js const { selectors, firefox } = require(’playwright’); // Or ‘chromium’ or ‘webkit’.
(async () => {
// Must be a function that evaluates to a selector engine instance.
const createTagNameEngine = () => ({
// 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=".
await selectors.register('tag', createTagNameEngine);
const browser = await firefox.launch();
const page = await browser.newPage();
await page.setContent(`<div><button>Click me</button></div>`);
// Use the selector prefixed with its name.
const = await page.$('tag=button');
// Combine it with other selector engines.
await page.click('tag=div >> text="Click me"');
// Can use it in any methods supporting selectors.
const = await page.$$eval('tag=button', => .length);
await browser.close();
})(); “‘
43 44 45 |
# File 'lib/playwright_api/selectors.rb', line 43 def register(name, script, contentScript: nil) raise NotImplementedError.new('register is not implemented yet.') end |