Struct playwright::api::selectors::Selectors[][src]

pub struct Selectors { /* fields omitted */ }
Expand description

Selectors can be used to install custom selector engines.

Implementations

impl Selectors[src]

pub async fn register(
    &self,
    name: &str,
    script: &str,
    content_script: bool
) -> Result<(), Arc<Error>>
[src]

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

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 button = 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 buttonCount = await page.$$eval('tag=button', buttons => buttons.length);

 await browser.close();
})();

Args

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.

content_script

Whether to run this selector engine in isolated JavaScript environment. This environment has access to the same DOM, but not any JavaScript objects from the frame’s scripts. Defaults to false. Note that running as a content script is not guaranteed when this engine is used together with other registered engines.

Trait Implementations

impl Clone for Selectors[src]

fn clone(&self) -> Selectors[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Selectors[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.