跳至主要内容
版本:22.5.0

Page.waitForSelector() 方法

等待页面中出现 selector。如果在调用该方法时 selector 已经存在,该方法将立即返回。如果在等待 timeout 毫秒后 selector 仍然没有出现,该函数将抛出异常。

签名:

class Page {
waitForSelector<Selector extends string>(
selector: Selector,
options?: WaitForSelectorOptions
): Promise<ElementHandle<NodeFor<Selector>> | null>;
}

参数

参数类型描述
selector选择器要等待的元素的 选择器
optionsWaitForSelectorOptions(可选) 可选的等待参数

返回值

Promise<ElementHandle<NodeFor<Selector>> | null>

当 DOM 中添加了选择器字符串指定的元素时,该 Promise 将解析。如果等待隐藏:true 并且 DOM 中没有找到选择器,则解析为 null

备注

参数 options 中可选的参数是

  • visible:一个布尔值,等待元素出现在 DOM 中并可见,即没有 display: nonevisibility: hidden CSS 属性。默认为 false

  • hidden:等待元素未在 DOM 中找到或隐藏,即具有 display: nonevisibility: hidden CSS 属性。默认为 false

  • timeout:以毫秒为单位的最大等待时间。默认为 30000(30 秒)。传递 0 以禁用超时。可以使用 Page.setDefaultTimeout() 方法更改默认值。

示例

此方法适用于所有导航

import puppeteer from 'puppeteer';
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
let currentURL;
page
.waitForSelector('img')
.then(() => console.log('First URL with image: ' + currentURL));
for (currentURL of [
'https://example.com',
'https://google.com',
'https://bbc.com',
]) {
await page.goto(currentURL);
}
await browser.close();
})();