mb_strlen("你好123",'utf-8');//返回5
strlen("你好");//返回几我也不知道,肯定不是2,但你想要2就用上面的
substr("你好啊",0,1);//返回的是乱码因为你取了一个汉字的一部分
mb_substr("你好啊",0,1,"utf-8");//返回 '你'
第一个阿拉伯数字为-1,就是从末尾来算。
mb_strlen("你好123",'utf-8');//返回5
strlen("你好");//返回几我也不知道,肯定不是2,但你想要2就用上面的
substr("你好啊",0,1);//返回的是乱码因为你取了一个汉字的一部分
mb_substr("你好啊",0,1,"utf-8");//返回 '你'
第一个阿拉伯数字为-1,就是从末尾来算。
例如 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这样的机制,记得使用弱引用哦
代理 可读性高 大部分可以属性 block 写的代码少 一般作为参数 通知 占用资源