天天都是为公司的应用写自动化测试脚本,没曾把这些自动化应用到生活中,直到逛社区看到 用Node+wechaty写一个爬虫脚本天天定时给女(男)朋友发微信暖心话 发现还有如此好玩的事情。因而赏玩了一把,以为还能够有更美好的实现方式。javascript
上面的脚本还要进行扫码登陆的操做,对于常常写自动化脚本的咱们最好是一劳永逸的。因此此次个人脚本:只需一次登陆。😁css
下面言归正传java
这里说明一下为啥我要用CukeTest?node
由于CukeTest是一款专门用来作自动化测试的工具,我常常用它来开发Windows,Web,Mobile,Api等自动化测试脚本。 本次我主要是想用它来自动化操做Windows版微信,你在Windows上登陆微信后,不用管它,它会一直在线,只要电脑不关机,免去扫码登陆的烦恼。git
Pc上安装好微信客户端,咱们手动登陆一下,为了方便快速的让自动化脚本找到你的哪一个她(或他),能够事先把她(或他)的微信置顶。github
和上面的大佬同样也是每日一句来自oneweb
天气信息来自墨迹天气chrome
这些库你们若是常常写自动化测试,应该很熟悉。chromedriver chrome浏览器的驱动, selenium-webdriver web自动化库。
我脚本的原理比较简单,就是把平时咱们手工操做的步骤转化为自动化脚本,自动打开chrome浏览器,去one和墨迹天气页面上提取信息。
由于CukeTest内置的有对Windows控件的操做,用CukeTest直接去自动操做微信,把上面提取出来的信息发送出去便可。npm
git clone https://github.com/autonodejs/auto_wechat.git
cd auto_wechat
npm install
复制代码
使用CukeTest 打开项目,点击运行就能够看到运行效果。
获取One
await driver.get(url);
let css_selector = '.fp-one-cita-wrapper>.fp-one-cita > a'; //元素定位
let text = await driver.findElement({css:css_selector}).getText();
this.oneText = text;
复制代码
获取天气
await driver.get(url);
let current_tm = await driver.findElement({ css:'div.wea_weather.clearfix > em'}).getText();
let current_state = await driver.findElement({ css:'.wea_weather.clearfix > b'}).getText();
let wea_tips = await driver.findElement({ css:'.wea_tips.clearfix > em'}).getText();
let current_about = await driver.findElement({ css:'.wea_about.clearfix'}).getText();
this.today_wea = ` 温度:${current_tm}° 天气:${current_state} ${current_about} ${wea_tips} `
});
复制代码
操做微信界面须要在CukeTest中添加虚拟控件。
添加完虚拟控件,调用CukeTest提供的API便可。模型管理器中能够看到。
复制或拖拽相关的方法到代码编辑器中便可。