背景html
學校放寒假了,又恢復了去年在家天天打卡的平常,今年就想研究一下怎麼用python自動打卡。打卡實際上也是網頁操做,今天就分享一下個人實現方法。vue
爲了方便我就找了個網站進行演示。python
網站地址: panjiachen.gitee.io/vue-element…git
谷歌瀏覽器 在地址欄輸入:chrome://version
回車,獲取本機谷歌瀏覽器的版本號 web
下載對應版本谷歌瀏覽器驅動:npm.taobao.org/mirrors/chr…chrome
下載後解壓到本機python的script文件夾下 npm
驅動的版本號要和瀏覽器的版本號一致,若使用別的瀏覽器則下載該瀏覽器的驅動瀏覽器
下載selenuimmarkdown
命令行敲入pip install selenium
dom
如何肯定XPATH?
能夠本身經過dom肯定,也可使用谷歌瀏覽器自帶的功能快速定位。
優勢:
方便快捷,小白也能輕鬆上手
缺點:
①當頁面元素會隨着操做變化時,使用XPATH絕對定位可能會定位失敗
②當頁面有嵌套子頁面的時候使用XPATH絕對定位會失敗
可是selenuim能夠經過多種方式定位元素,當沒法使用XPATH的時候能夠經過別的辦法進行定位。
谷歌快速獲得 full XPATH的方法:
F12打開開發者模式 -> 在想要操做的元素上右鍵檢查 -> 在源碼中找到源素對應的代碼行 -> 在代碼行右鍵 -> copy -> copy full xpath
from selenium import webdriver
from time import sleep
# 建立一個新chrome實例
driver = webdriver.Chrome()
# 打開目標網站
driver.get("https://panjiachen.gitee.io/vue-element-admin/#/login")
# 沉睡的目的是讓程序進行地慢一點方便觀看,有時候是等待元素渲染完成
sleep(1)
# 由於該網站是默認填好的,因此要先進行清空再填帳號密碼。
#帳號
driver.find_element_by_xpath('/html/body/div/div/form/div[2]/div/div/input').clear()
driver.find_element_by_xpath('/html/body/div/div/form/div[2]/div/div/input').send_keys("editor")
#密碼
driver.find_element_by_xpath('/html/body/div/div/form/div[3]/div/div/input').clear()
driver.find_element_by_xpath('/html/body/div/div/form/div[3]/div/div/input').send_keys("123456789098765432")
sleep(3)
# 點擊登陸
driver.find_element_by_xpath('/html/body/div/div/form/button').click()
複製代碼