class: ElementHandle
ElementHandle代表頁面DOM的物件,可以透過page.$創造
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.goto('https://google.com');
const inputElement = await page.$('input[type=submit]');
await inputElement.click();
// ...
});
當frame轉跳,ElementHandle會自動被丟棄。
可以透過page.$eval() 和 page.evaluate()使用
剩下的方法與前面的類別方法一樣
class: Request
當頁面發出請求時,這些事件就會被調用,並會回傳使物件
* 'request'
* 'response'
* 'requestfinished'
page.on('requestfailed', request => {
console.log(request.url() + ' ' + request.failure().errorText);
});
const response = await page.goto('http://example.com');
const chain = response.request().redirectChain();
console.log(chain.length); // 1
console.log(chain[0].url()); // 'http://example.com'
class: Response
代表Response的物件,發出request並回傳回來的物件