block函数可以代替协议,虽然我也没怎么学会协议。
由于之前一直再写andorid,所以用block函数代替了listen.
代替了android监听。
当然,也可以声明一个带有block的类,放入viewController里面,再传入这个类,这样完全就模仿了listen接口的功能。
block函数可以代替协议,虽然我也没怎么学会协议。
由于之前一直再写andorid,所以用block函数代替了listen.
代替了android监听。
当然,也可以声明一个带有block的类,放入viewController里面,再传入这个类,这样完全就模仿了listen接口的功能。
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。 其主要用途:不同进程Process/线程Thread之间通信。
例如 zip -q -r PocTest.zip PocTest/
使用Fiddler时如何屏蔽Chrome的证书警告:"Your connection is not private"/"您的连接不是私密连接"(如图1所示)? 启动chrome的时候加上--ignore-certificate-errors命令行参数(如图2所示)即可。
通过node-open模块,可以在任何平台上打开某个浏览器网址。
在使用puppeteer自动化的过程中,会发现其实开启的chrome往往自动禁用了插件功能,如果我们想在自动化测试的过程中,再去使用一些常用的插件提升效率(偷懒)的话,就行不通了,其实解决办法还是有的,我们今天就来讲解这个问题。
page.setRequestInterception(true)拦截器的使用方法和场景 现附上Puppeteer的Api的链接https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md
原理是先获得本机chrome的cookie,然后再设置给Puppeteer
In puppeter you have access to the session cookies through page.cookies(). So once you log in, you could get every cookie and save it in a json file:
在日常研究中,我们经常碰到大量JavaScript代码,我们首先要深入分析才能了解这些代码的功能及具体逻辑。这些代码代码可能会被恶意注入到页面中,可能是客户送过来需要我们帮忙分析的脚本,也可能是我们的安全团队在网页上找到的引用了我们服务的某些资源。这些脚本通常代码量不大、经过混淆处理,并且我们总是需要经过多层修改才能继续深入分析。
通过block回调,可以轻松实现类似android的 setListener这样的机制,记得使用弱引用哦