我也用Node寫個每天給她自動發微信的指令碼
每個都是為公司的應用寫自動化測試指令碼,沒曾把這些自動化應用到生活中,直到逛社群看到 用Node+wechaty寫一個爬蟲指令碼每天定時給女(男)朋友發微信暖心話 發現還有如此好玩的事情。於是賞玩了一把,覺得還可以有更美好的實現方式。
上面的指令碼還要進行掃碼登入的操作,對於經常寫自動化指令碼的我們最好是一勞永逸的。所以這次我的指令碼:只需一次登入。:grin:
下面言歸正傳
準備
- 一臺Windows作業系統。
- 在Windows上安裝微信客戶端。
- 在Windows上安裝CukeTest
這裡說明一下為啥我要用CukeTest?
因為CukeTest是一款專門用來做自動化測試的工具,我經常用它來開發Windows,Web,Mobile,Api等自動化測試指令碼。 本次我主要是想用它來自動化操作Windows版微信,你在Windows上登入微信後,不用管它,它會一直線上,只要不管電腦,微信可以隨時線上,再也不用擔心掉線了。
Pc上安裝好微信客戶端,我們手動登入一下,為了方便快速的讓自動化指令碼找到你的哪個她(或他),可以事先把她(或他)的微信置頂。
暖心內容來源
和上面的大佬一樣也是每日一句來自one
天氣資訊來自墨跡天氣
使用庫
這些庫大家如果經常寫自動化測試,應該很熟悉。chromedriver chrome瀏覽器的驅動, selenium-webdriver web自動化庫。
我指令碼的原理比較簡單,就是把平時我們手工操作的步驟轉化為自動化指令碼,自動開啟chrome瀏覽器,去one和墨跡天氣頁面上提取資訊。
因為CukeTest內建的有對Windows控制元件的操作,用CukeTest直接去自動操作微信,把上面提取出來的資訊傳送出去即可。
執行
git clone https://github.com/autonodejs/auto_wechat.git cd auto_wechat npm install 複製程式碼
使用CukeTest 開啟專案,點選執行就可以看到執行效果。
主要程式碼片段
1.編輯一個故事場景

2.獲取資訊
獲取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} ` }); 複製程式碼