Headless浏览器与自动化测试

1 Headless浏览器 与 Puppeteer

1.1 Headless 浏览器

无头Chrome在Chrome 59中发布。这是在无头环境中运行Chrome浏览器的一种方式。 基本上,运行没有Chrome的Chrome! 它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。

那么这个浏览器可以用来干嘛?

想象一下每次在发版前,测试人员都需要测试系统的功能,重复且乏味。于是你决定让程序自动测试界面上的功能。你不需要浏览器有GUI界面,想通过编程的方法来驱动浏览器进行各种操作,并且希望能在服务器端运行,这样每次发版前就可以自动测试相关功能,提高测试效率。

以上只是一个应用场景,Headless浏览器可以理解为没有GUI界面的浏览器程序。由于没有界面,所以在速度上比普通浏览器稍快,它可以在自动化测试、性能检查、获取元数据(例如爬虫)和网页截图等方面发挥用途。

1.2 Puppeteer 介绍

Puppeteer 是一个 Node 库,它提供了高级的 API 并通过 DevTools 协议来控制 Chrome(或Chromium)。通俗来说就是一个 headless chrome 浏览器 (也可以配置成有 UI 的,默认是没有的)

Puppeteer API可用于截取屏幕截图,创建PDF,导航页面以及从页面获取信息等.

Puppeteer API 官方参考链接: https://pptr.dev/, Puppeteer API 中文版参考链接: https://zhaoqize.github.io/puppeteer-api-zh_CN/

Android Google Play 安装游戏时出现错误代码: 492及解决方法

背景

Android 手机无法在Google Play下载大型游戏(特指需要附加数据), 总是提示"错误代码: 492". 但下载普通应用和游戏(eg: 海岛奇兵)都没有问题.
在网上找了各种方法[清缓存, 清数据, 进入 Recovery 中清除 Dalvik cache] 都不行.

手机信息

  • 小米8
  • 内存及存储: 6+64G
  • Anroid 版本: 9 pie,
  • MIUI 版本: MIUI 10.3 by xiaomi.eu 9.1.3 开发版

原因

在一次偶然的机会下, 我发现内存卡的"Android/obb"目录为空且无法创建文件及子目录, 而且该目录修改日期为"1970/02/18"
该目录就是存储游戏附加数据的目录, 如果无法写入那些大型游戏肯定无法安装.

0-6岁 儿童书单推荐

说明

今天朋友让整理一下给孩子买的绘本书籍, 我孩子四岁半了, 给他买的绘本基本上都在JD买的, 就把近2-3年的历史订单都查了下, 看还挺多, 整理列表如下, 如果你也正在查看 儿童绘本及书籍, 也可以参考一下.

没有按年龄排序[请自行查看书本适用年龄]
推荐JD图书活动时购买, 价格便宜

书单列表

西游记(幼儿版 1-6 套装共6册)
https://item.jd.com/11344440.html

彩书坊:365夜宝宝睡前故事全集(套装共2册)
https://item.jd.com/11279582.html

.....

Tasker Android SIM 双卡自动切换数据(dual sim card switch)

效果图

https://i.loli.net/2018/09/12/5b97fc5c31603.gif

背景

最近买了物联网卡(卡2), 只作为上网使用, 接电话发短信还是使用联通主卡(卡1). 手机虽然双卡双待,
但是只能一个卡设置为4G, 正常情况下, 把卡2设置为4G用来上网, 卡1自动设置为2G/3G接打电话. 由于出租屋内2G/3G基本没信息号, 每次回到住的地方都需要手动把卡1设置主卡(4G). 然后每次出门后再把卡2设置主卡.
大多数都忘记设置, 电话短信也接不到, 这两天有时间研究了一下 Tasker, 实现根据某些条自动切换双卡数据流量.

目标

根据连接到特定的WIFI(住处)来实现双SIM卡数据流量的自动切换, 本文主要目的就是得到下面二行命令:

service call isub 24 i32 1   #24是我们要通过下面步骤查找出来的, 不同的手机数字是不同的, 需要你自已查找
service call isub 24 i32 2

v2ray 免流 配置

SSR 和v2ray 都可以免流, SSR相关的文章网上有很多,这里就不介绍了,有兴趣的自己GOOGL搜索一下。

引用

http://www.right.com.cn/forum/thread-319054-1-1.html

说明

上一篇文章我们已经介绍了 v2ray 的使用,由于使用web + websocket,还是很稳定的, 最近几次墙的比较厉害, v2ray的小鸡还是一切正常(哈哈)
链接在这: v2ray + websocket + web + nginx 配置与使用

今天简单讨论一下 v2ray 免流配置,我在网上找了相关的文章并不多,即使有可能说明也不完整,
当时找到了恩山一篇文章还是比较完整的,链接: 路由器设置v2ray客户端(免流)

v2ray + websocket + web + nginx 配置与使用

说明

  • 2018年初的时候,三台使用SS(SSR)的小鸡都被墙了, 不过在3, 4月份的时候这三台小鸡又都被放出来了, 哈哈,
  • 于是就开始了解v2ray, v2ray + websocket + web + nginx 据有更强的抗干扰性,
  • 网上已经有很多相关介绍了, 本文也只是起到记录作用, 方便下次部署,
  • 本文不是零基础,默认你已经购买了VPS, 熟悉基本的LINUX命令

引用

步骤

  • v2ray 服务器端安装及配置
  • nginx 安装及配置
  • v2ray 客户端使用

使用 Sitecore Install Framework 安装 Sitecore 9

介绍

本文主要介绍在使用Sitecore Install Framework 安装 Sitecore 9 过程中遇到的问题及解决方法,
公司最近要做一个新的 sitecore 项目,可能需要使用最新的 Sitecore 9, 所以需要我先熟悉一下,在网上看看,
Sitecore 9 的安装方式和以前不一样了,以前的版本都是一个EXE文件,直接运行安装就可以了,
但 Sitecore 9 需要使用 Powershell 脚本安装. 不过有人写了一个SIF-less工具帮助安装人员快速检测环境是否准备完成。

安装文件

  • Sitecore 官方下载,默认你已经下载了Sitecore安装包及License文件.
    在这里使用xp0安装包(Packages for XP Single [XP0] Instance configuration).
  • SIF-less 下载
  • Solr 下载
  • NESS 下载

本机安装环境

  • IIS 8.5
  • Windows 8.1 x64
  • .NET Framework 4.6.2
  • Microsoft SQL Server 2014 SP2:This version only supports XM databases and does not support the Experience Database (xDB)

V2EX 半自动签到

前提

注册v2也有一年多了, 以前偶尔会上去看看, 现在是重度用户, 每天都会看好几次.
年初看到有讨论v2自动登录领金币帖子, 有很多网友也分享了自动签到脚本,
我也拷贝了其中一份, 放在服务器上每天自动签到, 一直都挺好的, 金币现在也有一万多了,
不过前不久v2登录添加了验证, 自动签到脚本失效了, 所以趁着国庆假期, 简单修改了一下脚本,
现在是半自动签到, 第一次或Cookie失效后, 都需要手动处理一下.
目前已经稳定签到10天了, 所以看看网友有需要的吗.

贴图

v2截图
https://i.loli.net/2017/10/18/59e6e4a871388.png

通过Telegram Bot 把语音信息发送到 Raspberry Pi 并播放(一)

今天是国庆节前一天, 好像事不多, 这篇早该完成的博客一直拖到了现在.
<树莓派录音并发送到特定Telegram Group(二)> 相关的第二篇都已经写完了, 哎...

前言

去年媳妇在找工作, 但是由于出租屋内的手机信号不好, 经常接不到电话, 即使接到电话, 通话也是很卡断断续续的.
我公司信号没问题, 于是媳妇就把我号码也写到的简历上了, 这样我在公司经常收到面试电话, 再告诉他们原由,
让他们发面试邀请邮件或者我通知媳妇给他们回电话(主要通过QQ).
有时候媳妇不并总是在电脑前, QQ消息并不能及时回复, 就会出现你明明知道她在那里, 但就是联系不上,
于是就想到了利用树莓派来播放语言, 树莓派插上广播, 使用mplayer播放语音文件, 可以达到这个目的.
现在经常用来把下班行程告诉岳母, 然后根据语音提示合理的安排做饭时间. 一般到家正好开饭. 哈哈

树莓派录音并发送到特定Telegram Group(二)

目的:
在Raspberrypi上录音,然后把录音发送到特定Telegram group, 之前做了通过Telegram Bot 把录音发送到Raspberry pi 并播放.

操作说明:
Raspberry pi GPIO 版本: 0.6.3(这个和最新的0.10.0有方法名有区别)
手指触摸开关,指示灯亮起,此时开始录音,当想停止录音时,手指再次触摸开关, 指示灯关闭, 停止录音(TTP223, 也可以切换到另一模式,手指触摸长亮,手指离开关闭)。将音频文件移动到指定文件夹,然后通过Telegram Bot 把音频文件发送到指定的Telegram Group.

引用:

http://www.jianshu.com/p/3763957519a4
http://www.jianshu.com/p/008339095fd6
http://www.jianshu.com/p/ace71c44ec67

Github 项目:
https://github.com/tianzhenyun/raspberry-record-audio