如今網站好多都要短信驗證,作自動化時想要繞過有不少方法html
1.測試環境註釋掉這個功能,但發佈到其它環境怕會有遺漏python
2.萬能碼,但不當心就會被其它開發給覆蓋了,或者不當心點擊了發送驗證碼後,你這個驗證碼就失效了mysql
3.本身想辦法,好比讀取數據庫,拿到最新的驗證碼sql
https://www.cnblogs.com/woider/p/5926744.html 學習了這位大神的帖子纔有了方向,感謝!數據庫
今天講第三種方法,直接貼代碼ide
講幾點,python2支持mysqldb,但python3還不支持,因此只能用pymysql代替,安裝也很簡單,終端命令:pip install pymysql便可 學習
看代碼裏的connect:db是指你讀取的數據庫名稱;這裏踩的坑是怎麼把數據庫裏取出來的check_code轉換爲數字,直接使用code.split是不行的,左試右試都是不行,一直報錯,最後沒辦法了,試着打印下 code的類型,麻的,竟然是tuple,其實我心裏在看到code格式的一瞬間就已經堅信它是str了,因此根本沒往這上面想,要不找不出緣由,我估計也不會去打印這個type~~ 因此除了基礎要紮實,必定要有opening mind(這二者我都還欠缺~~)。知道了數據類型後,那個單引號的分割我不會,百度了下,添加轉義符,就能很愉快的使用split提取出數字了測試
另外一個提取的方式(取下標,從0開始數)網站
——————————————————————————————————————————————code
這個方法在調用 的時候發現有點問題,由於我沒有寫方法,因此在調用mysql這個文件的時候他已經直接調用了,致使個人驗證碼一直讀的是第二條,而不是最新的第一條。因此這裏添加了一個方法,再加一個return去調用first變量,就沒有問題了
data = driver.mysql.usemysql()