Method: Playwright::Page#wait_for_selector

Defined in:
lib/playwright_api/page.rb

#wait_for_selector(selector, state: nil, timeout: nil) ⇒ Object

Returns when element specified by selector satisfies ‘state` option. Returns `null` if waiting for `hidden` or `detached`.

Wait for the ‘selector` to satisfy `state` option (either appear/disappear from dom, or become visible/hidden). If at the moment of calling the method `selector` already satisfies the condition, the method will return immediately. If the selector doesn’t satisfy the condition for the ‘timeout` milliseconds, the function will throw.

This method works across navigations:

“‘js const { chromium } = require(’playwright’); // Or ‘firefox’ or ‘webkit’.

(async () => {

const browser = await chromium.launch();
const page = await browser.newPage();
for (let currentURL of ['https://google.com', 'https://bbc.com']) {
  await page.goto(currentURL);
  const element = await page.waitForSelector('img');
  console.log('Loaded image: ' + await element.getAttribute('src'));
}
await browser.close();

})(); “‘

“‘python async import asyncio from playwright.async_api import async_playwright

async def run(playwright):

chromium = playwright.chromium
browser = await chromium.launch()
page = await browser.new_page()
for current_url in ["https://google.com", "https://bbc.com"]:
    await page.goto(current_url, wait_until="domcontentloaded")
    element = await page.wait_for_selector("img")
    print("Loaded image: " + str(await element.get_attribute("src")))
await browser.close()

async def main():

async with async_playwright() as playwright:
    await run(playwright)

asyncio.run(main()) “‘

“‘python sync from playwright.sync_api import sync_playwright

def run(playwright):

chromium = playwright.chromium
browser = chromium.launch()
page = browser.new_page()
for current_url in ["https://google.com", "https://bbc.com"]:
    page.goto(current_url, wait_until="domcontentloaded")
    element = page.wait_for_selector("img")
    print("Loaded image: " + str(element.get_attribute("src")))
browser.close()

with sync_playwright() as playwright:

run(playwright)

“‘



1829
1830
1831
# File 'lib/playwright_api/page.rb', line 1829

def wait_for_selector(selector, state: nil, timeout: nil)
  wrap_impl(@impl.wait_for_selector(unwrap_impl(selector), state: unwrap_impl(state), timeout: unwrap_impl(timeout)))
end