page.goto(url)
請求指定url
比較常用的用法是page.goto(url,{'waitUntil':'load'})
waitUntil的參數(shù)有:load,domcontentloaded,networkidle0,networkidle2
DOM文檔的加載步驟為:
- 解析HTML結(jié)構(gòu)。
- 加載外部腳本和樣式表文件。
- 解析并執(zhí)行腳本代碼。
- DOM樹構(gòu)建完成。//domcontentloaded
- 加載圖片等外部文件。
- 頁面加載完畢。//load
networkidle0表示
when there are no more than 0 network connections for at least 500 ms.
newwordidle2表示
when there are no more than 2 network connections for at least 500 ms
page.waitfor(time)
設(shè)置頁面等待時間,單位是毫秒,常用語設(shè)置操作間隔,讓page能加載完成指定目標(biāo),如:page.waitfor(3*1000)表示等待3秒鐘。
page.waitForSelector(selector)/page.waitForXPath(xpath)
等待目標(biāo)元素加載完成,默認(rèn)timeout是30秒,可以輔助確定指定位置元素是否已經(jīng)加載完成。
page.waitForNavigation()
等到某動作完成,常用的是配合其他動作一起使用,如:
await asyncio.wait([
page.click('a.my-link'),
page.waitForNavigation(),
])
這段代碼表示,等待連接點擊并跳轉(zhuǎn)完成。
page.J(css selector)/page.querySelector(css selector)
通過css selector定位元素,前面是縮寫函數(shù)
page.Jx(xpath)/page.xpath(xpath)
通過xpath定位元素,前面是縮寫函數(shù)
page.content()
獲取頁面當(dāng)前加載網(wǎng)頁的document,用法:
doc = await page.content()
page.cookies()
獲取頁面當(dāng)前的cookies,常用如:
...登錄后...
cookies= await page.cookies()
dosomething(cookies)
page.eveluate(jsstr)
執(zhí)行js,js代碼用字符串書寫,注意引號的使用
page.evaluateOnNewDocument(jsstr)
用法同上,不過在頁面新打開一個document時才生效,上面的函數(shù)是當(dāng)前document生效。
page.hover(selector)
指針移動到selector定位的元素位置
page.screenshot()
頁面截屏
page.setCacheEnabled()
是否啟用緩存,默認(rèn)是True
page.setJavaScriptEnabled()
是否允許加載js,默認(rèn)是True
page.setRequestInterception()
是否允許請求和返回注入,默認(rèn)是False
page.setUserAgent()
設(shè)置UA
page.setViewport()
用法: await page.setViewport({'width':xx,'height':xx})
page.type(selector,str)
在指定位置中輸入字符串