Python利用Selenium實(shí)現(xiàn)網(wǎng)站自動(dòng)簽到功能
什么是Selenium
先帶領(lǐng)大家學(xué)習(xí)下Selenium的基本概念吧。
Selenium主要用于web應(yīng)用程序的自動(dòng)化測(cè)試,但并不局限于此,它還支持所有基于web的管理任務(wù)自動(dòng)化。
它的特點(diǎn)如下:
- 開源,免費(fèi)
- 多瀏覽器支持:Firefox、Chrome、IE等
- 多平臺(tái)支持:Linux、Windows、Mac
- 多語(yǔ)言支持:Java、Python、Ruby、C#、JavaScript、C++
- 對(duì)web頁(yè)面有良好的支持
- 簡(jiǎn)單(API簡(jiǎn)單)、靈活(開發(fā)語(yǔ)言驅(qū)動(dòng))
- 支持分布式測(cè)試用例執(zhí)行
今天是Python改變生活系列的第二篇,也是我真實(shí)的問題案例。

前情提要
小五收藏了一些論壇網(wǎng)站,經(jīng)常需要自己登錄簽到,以此來獲得積分金幣等等。
步驟倒是并不復(fù)雜,只需要填寫賬號(hào)密碼登錄,然后點(diǎn)擊簽到即可。

但天天手動(dòng)太容易忘了這件事啦。畢竟我們都會(huì)用python了,那就可以使用Selenium操作;瀏覽器實(shí)現(xiàn)自動(dòng)簽到啊!
現(xiàn)在開始上手工作👉
準(zhǔn)備工作
首先我們需要先安裝Selenium,從而實(shí)現(xiàn)后續(xù)自動(dòng)化操控瀏覽器。我們可以利用它來模擬鼠標(biāo)按鍵,跟按鍵精靈很類似。
pip install selenium
待其安裝完成后,準(zhǔn)備另一個(gè)必需工具。
selenium可以操控多款瀏覽器,包括谷歌,火狐等,這里小五使用的是谷歌瀏覽器。
這里需要知道瀏覽器的版本信息,只需打開“關(guān)于Chrome”,就可以看到了。

如上圖所示,我的瀏覽器版本是89.0.4389.114。然后我們需要前往(http://chromedriver.storage.googleapis.com/index.html)找到與瀏覽器相匹配的版本,沒有一模一樣的選擇最近的版本也可以。

點(diǎn)擊進(jìn)去選擇對(duì)應(yīng)的系統(tǒng)版本,下載后將chromedriver.exe解壓出來,最后將其放到與python.exe文件相同的路徑下。
如果你是用的anaconda就放在下面目錄下
C:\Users\Administrator\anaconda3
具體位置如下圖所示👇

下面我們就可以正式用python自動(dòng)簽到了。
代碼及講解
首先打開我要登錄的網(wǎng)站,具體域名就不分享給大家了。
先導(dǎo)入selenium庫(kù),這里只需使用selenium中的webdriver模塊,運(yùn)行
from selenium import webdriver
打開下載的瀏覽器驅(qū)動(dòng),設(shè)置隱式等待時(shí)
wd=webdriver.Chrome()
wd.implicitly_wait(1)
👆執(zhí)行代碼的時(shí)候會(huì)自行去尋找chromedriver.exe(在python目錄下尋找)。如果我們前面沒有放在固定的路徑下,就需要在這里指定chromedriver.exe路徑。
打開登錄網(wǎng)頁(yè)
wd.get('待登錄網(wǎng)站URL')

如上圖所示,模擬瀏覽器已經(jīng)打開了網(wǎng)站的登錄界面。這個(gè)時(shí)候我們需要定位到輸入框、密碼框以及登錄按鈕等。
這里不用擔(dān)心,Selenium提供了很多種定位DOM元素的方法,各有各的特點(diǎn)和優(yōu)勢(shì)。
今天就主要使用 by_xpath() 這個(gè)方法來定位元素,這個(gè)方法比較靈活方便,大部分屬性都可以通過它來定位。
【檢查】→【進(jìn)入開發(fā)者模式】點(diǎn)擊左上角的圖標(biāo),再點(diǎn)擊你要找的對(duì)象,即可得到該對(duì)象的信息。點(diǎn)位該對(duì)象后,右鍵copy它的XPath!

input = wd.find_element_by_xpath('//*[@id="email"]')
input.send_keys('kxpython@163.com')
同理,我們可以定位到密碼框,再send_keys輸入密碼
password = wd.find_element_by_xpath('//*[@id="password"]')
password.send_keys('kxpython')

至于需要點(diǎn)擊的對(duì)象,可以使用click()來實(shí)現(xiàn)模擬點(diǎn)擊的功能。
點(diǎn)擊登錄
button_login = wd.find_element_by_xpath('//*[@id="app"]/section/div/div/div/div[2]/form/div/div[5]/button')
button_login.click()
點(diǎn)擊跳過彈窗
一般登錄后會(huì)有個(gè)小彈窗,關(guān)閉即可。

wd.find_element_by_xpath('//*[@id="popup-ann-modal"]/div/div/div[3]/button').click()
嘗試簽到

try:
wd.find_element_by_xpath('//*[@id="checkin-div"]/a').click()
except:
print("已簽到")
最后要記得關(guān)閉瀏覽器窗口
wd.quit()
注:close()關(guān)閉當(dāng)前窗口,wd.quit()則是關(guān)閉所有窗口。
點(diǎn)擊運(yùn)行上面的全部代碼,即可實(shí)現(xiàn)python對(duì)網(wǎng)站的自動(dòng)簽到。我們還可以將該python腳本設(shè)置為定時(shí)任務(wù),這樣就不用每天手動(dòng)去簽到啦!

小結(jié)
作為演示的這個(gè)網(wǎng)站非常簡(jiǎn)單,如果大家也想用python來自動(dòng)簽到的話,要根據(jù)自己的網(wǎng)站情況來改寫腳本。
其實(shí) Selenium 更多的用法是自動(dòng)化測(cè)試、爬蟲等,具體Selenium的詳細(xì)用法,可以參考文檔。
地址:http://selenium-python.readthedocs.org/
我們學(xué)習(xí)Python時(shí),可以嘗試用來解決自己的生活問題,這樣學(xué)得也更扎實(shí),學(xué)得也更有趣味!
到此這篇關(guān)于Python利用Selenium實(shí)現(xiàn)網(wǎng)站自動(dòng)簽到功能的文章就介紹到這了,更多相關(guān)Python Selenium網(wǎng)站自動(dòng)簽到內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解Python 使用 selenium 進(jìn)行自動(dòng)化測(cè)試或者協(xié)助日常工作
- Selenium+Python自動(dòng)化腳本環(huán)境搭建的全過程
- 利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程
- python Selenium等待元素出現(xiàn)的具體方法
- Python使用Selenium自動(dòng)進(jìn)行百度搜索的實(shí)現(xiàn)
- Python中Selenium對(duì)Cookie的操作方法
- python+opencv+selenium自動(dòng)化登錄郵箱并解決滑動(dòng)驗(yàn)證的問題
- 用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人
- 教你用Python+selenium搭建自動(dòng)化測(cè)試環(huán)境
- Python selenium的這三種等待方式一定要會(huì)!
- Python爬蟲實(shí)戰(zhàn)之用selenium爬取某旅游網(wǎng)站
- 教你如何使用Python selenium
- python Web應(yīng)用程序測(cè)試selenium庫(kù)使用用法詳解
相關(guān)文章
Python自動(dòng)化運(yùn)維_文件內(nèi)容差異對(duì)比分析
下面小編就為大家分享一篇Python自動(dòng)化運(yùn)維_文件內(nèi)容差異對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
python3實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文字(語(yǔ)音識(shí)別)和文字轉(zhuǎn)語(yǔ)音(語(yǔ)音合成)
這篇文章主要介紹了python3實(shí)現(xiàn)語(yǔ)音轉(zhuǎn)文字(語(yǔ)音識(shí)別)和文字轉(zhuǎn)語(yǔ)音(語(yǔ)音合成),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
python實(shí)現(xiàn)的生成隨機(jī)迷宮算法核心代碼分享(含游戲完整代碼)
這篇文章主要介紹了python實(shí)現(xiàn)的隨機(jī)迷宮生成算法核心代碼分享,本文包含一個(gè)簡(jiǎn)單迷宮游戲完整代碼,需要的朋友可以參考下2014-07-07
Python實(shí)現(xiàn)日志備份守護(hù)進(jìn)程的示例
本文主要介紹了Python實(shí)現(xiàn)日志備份守護(hù)進(jìn)程的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
Python實(shí)現(xiàn)一個(gè)轉(zhuǎn)存純真IP數(shù)據(jù)庫(kù)的腳本分享
工作中我們常需要使用純真IP數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)做分析,下面這篇文章主要給大家介紹了利用Python如何實(shí)現(xiàn)一個(gè)轉(zhuǎn)存純真IP數(shù)據(jù)庫(kù)的相關(guān)資料,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05
Python實(shí)現(xiàn)的尋找前5個(gè)默尼森數(shù)算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的尋找前5個(gè)默尼森數(shù)算法,簡(jiǎn)單講述了默尼森數(shù)的概念,并結(jié)合實(shí)例形式分析了Python求解默尼森數(shù)算法的相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
用Python寫一個(gè)模擬qq聊天小程序的代碼實(shí)例
今天小編就為大家分享一篇關(guān)于用Python寫一個(gè)模擬qq聊天小程序的代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03

