相关文章推荐
机灵的绿茶  ·  如何在Python ...·  1 周前    · 
从未表白的毛衣  ·  Python ...·  1 周前    · 
淡定的核桃  ·  python ...·  3 周前    · 
另类的饼干  ·  PyCharm 中 Django ...·  8 月前    · 
愉快的夕阳  ·  JS作用域与闭包 ...·  1 年前    · 
豪气的香瓜  ·  用*输出菱形图案-掘金·  1 年前    · 

page.goto(url)

请求指定url
比较常用的用法是 page.goto(url,{'waitUntil':'load'})
waitUntil的参数有: load,domcontentloaded,networkidle0,networkidle2
DOM文档的加载步骤为:

  1. 解析HTML结构。
  2. 加载外部脚本和样式表文件。
  3. 解析并执行脚本代码。
  4. DOM树构建完成。//domcontentloaded
  5. 加载图片等外部文件。
  6. 页面加载完毕。//load

networkidle0表示

when there are no more than 0 network connections for at least 500 ms.

newwordidle2表示

when there are no more than 0 network connections for at least 500 ms.

page.waitfor(time)

设置页面等待时间,单位是毫秒,常用语设置操作间隔,让page能加载完成指定目标,如:page.waitfor(3*1000)表示等待3秒钟。

page.waitForSelector(selector)/page.waitForXPath(xpath)

等待目标元素加载完成,默认timeout是30秒,可以辅助确定指定位置元素是否已经加载完成。

page.waitForNavigation()

等到某动作完成,常用的是配合其他动作一起使用,如:

await asyncio.wait([
    page.click('a.my-link'),
    page.waitForNavigation(),

这段代码表示,等待连接点击并跳转完成。

page.J(css selector)/page.querySelector(css selector)

通过css selector定位元素,前面是缩写函数

page.Jx(xpath)/page.xpath(xpath)

通过xpath定位元素,前面是缩写函数

page.content()

获取页面当前加载网页的document,用法:

doc = await page.content()

page.cookies()

获取页面当前的cookies,常用如:

登录后...
cookies= await page.cookies()
dosomething(cookies)
page.eveluate(jsstr)

执行js,js代码用字符串书写,注意引号的使用

page.evaluateOnNewDocument(jsstr)

用法同上,不过在页面新打开一个document时才生效,上面的函数是当前document生效。

page.hover(selector)

指针移动到selector定位的元素位置

page.screenshot()

page.setCacheEnabled()

是否启用缓存,默认是True

page.setJavaScriptEnabled()

是否允许加载js,默认是True

page.setRequestInterception()

是否允许请求和返回注入,默认是False

page.setUserAgent()

page.setViewport()

用法: await page.setViewport({‘width’:xx,‘height’:xx})

page.type(selector,str)

在指定位置中输入字符串

await page.waitForTimeout(3000) //等待登录按钮XPath出现在页面中 await page.waitForXPath(XPATH.LOGIN_BTN) await page.goto(url) //等待页面加载完成 await page.waitForNavigation(); 本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/P-YdQPOQ9GZgjDEP7VG8ag 作者:Wang Zhenzheng Puppeteer 是 Chrome开发团队2017年发布的一个 Node.js包,提供了一组用来操纵Chrome的API,通俗来说就是一个Headless Chrome浏览器,这Headless Chrome也可以配置成有UI的 。利用Puppeteer可以做到爬取页面数据,页面截屏或者生成PDF文件,前端自动化测.. 我想page.waitForNavigation应该是等待网页上的Navigation的触发,可以简单认为是网址改变,然后等待网址改变后网站加载到什么程度就是设置的waitUntil了。可以知道首先前往网站,然后有一个缓冲的过程,紧接着在相同的网址下加载出真正的内容。你可能会想设置一个很长的时间就是了,但还是有可能不够长,同时效率也很低,所以不是一个很好的方法。我想要的就是等到网站真正内容中的目录元素出现,也就是querySelectorAll的dom出现后再执行,那么就不会报出最开始的错误了。 文 | 张敏 on 前端 有赞微商城包括了 PC 端、H5 端和小程序端,每个端都有绘制分享海报的需求。最早的时候我们是在每个端通过 canvas API 来绘制的,通过 canvas 绘制有很多痛点,与本文要讲的海报渲染服务做了一个对比: 对比项 Canvas Node 海报渲染服务 上手门槛 需要掌握 canvas API 了解 HTML、CSS 语法即可 代码体积 占用小程序包体积 ... networkidle”:等待网络空闲,即没有正在进行的网络请求或者网络请求数量低于指定的阈值。“timeout”:等待指定的时间,如果在指定时间内没有完成指定的条件,则抛出超时异常。“domcontentloaded”:等待DOM树构建完成,但不包括所有资源的加载。“load”:等待页面完全加载,包括所有资源(如图片、样式表、脚本等)。 最近使用 Pyppeteer 过程中调用 evaluateOnNewDocument 方法在浏览器中执行 JavaScript 代码时出现了一个错误,关键代码如下: await page.evaluateOnNewDocument('Object.defineProperty(navigator, "webdriver", {get: () => undefined})') 其中 JavaScript 代码如下: Object.defineProperty(navigator, "webd 页面执行动态加载的脚本 当 500ms 都没有新的网络请求的时候,触发 networkidle 事件 page.goto(url)会跳转到一个新的链接。默认情况下 Playwright 会等待到 load 状态。如果我们不关心.