背景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()
复制代码