python+selenuim實現自動登陸

背景html

學校放寒假了,又恢復了去年在家天天打卡的平常,今年就想研究一下怎麼用python自動打卡。打卡實際上也是網頁操做,今天就分享一下個人實現方法。vue

爲了方便我就找了個網站進行演示。python

網站地址: panjiachen.gitee.io/vue-element…git

環境準備

  1. 谷歌瀏覽器 在地址欄輸入:chrome://version回車,獲取本機谷歌瀏覽器的版本號 web

  2. 下載對應版本谷歌瀏覽器驅動:npm.taobao.org/mirrors/chr…chrome

    下載後解壓到本機python的script文件夾下 npm

    驅動的版本號要和瀏覽器的版本號一致,若使用別的瀏覽器則下載該瀏覽器的驅動瀏覽器

  3. 下載selenuimmarkdown

    命令行敲入pip install seleniumdom

實現工具

  • 使用selenuim模擬點擊、輸入、清空等事件。
  • 使用XPATH定位元素
    • 如何肯定XPATH?

      能夠本身經過dom肯定,也可使用谷歌瀏覽器自帶的功能快速定位。

      使用谷歌瀏覽器快速獲得XPATH優缺點

      優勢

      方便快捷,小白也能輕鬆上手

      缺點

      ①當頁面元素會隨着操做變化時,使用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()


複製代碼
相關文章
相關標籤/搜索