欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python+selenium自動健康打卡的實現(xiàn)代碼

 更新時間:2021年01月13日 09:52:26   作者:X.Leibniz  
這篇文章主要介紹了基于python+selenium自動健康打卡,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

每天都要記得健康打卡

尊敬的老師,我忘了這次的健康打卡,反思的時候我想了很多東西,反省了很多事情,自己也很懊悔,觸犯了學校的規(guī)定,深刻認識到自己所犯錯誤的嚴重性… 卡!那是小學生才有的檢討。作為一個有點懶的人,對于每次的健康打卡,都是做著重復性的填寫,這讓本人很是頭疼,那就找找止疼藥吧

使用的工具

需要有一定的python,html基礎,和實踐能力(畢竟實踐出真知,實踐能力強,你可以忽略前兩個,你是最棒的!):

  • Pycharm ,在pycharm官網(wǎng)里面下載社區(qū)版或專業(yè)版(沒其他的用途推薦用社區(qū)版);
  • Python 我使用的是python3.8,在官網(wǎng)下載,可參考python安裝,配置好環(huán)境變量方便cmd 裝包;
  • Selenium在cmd輸入 pip install selenium ,分布式自動化測試工具,用于模擬用戶在瀏覽器的行為;
  • Chromedriver 這個是在pycharm里面驅動Chrome瀏覽器,下載后解壓放在Script下面,Chromedriver需要和自己的谷歌瀏覽器版本相對應

在這里插入圖片描述

置于桌面 將你寫好的py文件放在桌面或者你設置開機自啟動管理運行該程序就可以了

在這里插入圖片描述 

接下來就是代碼了

代碼中必要的地方都進行了注釋,注釋的多的地方就是我停留較久的地方,,,實習自動打卡的功能算是實現(xiàn)了,但還是有一些問題,比如說網(wǎng)絡延時,當網(wǎng)頁還未加載出來,你就無法定位該html元素,該程序就無法正常執(zhí)行完操作,可以發(fā)一封郵件提醒你補填。歡迎大家共同探討遇到的問題或者文章中有其他不足之處還望雅正。

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

# 腳本自動登錄該網(wǎng)頁
driver = webdriver.Chrome()
# 將健康表的地址copy過來就行
driver.get("你的健康表地址")
time.sleep(2)

print("開始點擊----立即登錄")
# 第一次點擊登錄跳轉
driver.find_element_by_xpath('//*[@id="header-login-btn"]').click()
time.sleep(5)

print("開始點擊快速登錄")

# # selenium判斷元素是否可以點擊或者處理
# element = driver.find_element_by_id("img_out_191736586")

# element = driver.find_element_by_xpath('//*[@id="img_out_191733686"]')
# bianji = element.is_enabled() #是否可以編輯,或者按鈕是否可以點擊
# xinashi = element.is_displayed() #:判斷元素是否顯示
# xunazhong = element.is_selected() #:判斷元素是否選中狀態(tài)
# print(bianji,xinashi,xunazhong)
# element.click()

# 想了想為啥定位不到那個快速登錄元素,原來html知識不夠,切進iframe
driver.switch_to.frame(0) # 1.用frame的index來定位,第一個是0
# driver.switch_to.frame("frame1") # 2.用id來定位
# driver.switch_to.frame("myframe") # 3.用name來定位
# driver.switch_to.frame(driver.find_element_by_tag_name("iframe")) # 4.用WebElement對象來定位

# 快捷登錄
driver.find_element_by_xpath('//*[@id="img_out_1917336586"]').click()
# driver.find_elements_by_class_name('img_out_focus')[0].click()
time.sleep(15)

print("點擊大數(shù)據(jù)人工智能一班SHEET")
# driver.find_elements_by_class_name("sheet-tab-name")[2].click()
driver.find_element_by_xpath('//*[@id="sheetbar"]/div[2]/div[3]/div/div[4]/span').click()
time.sleep(3)

print("開始點擊更多")
driver.find_element_by_xpath('//*[@id="toobarMoreButton"]/div/div/div[1]').click()
# driver.find_element_by_class_name("toolbar-menu-button-more toolbar-inline-block").click()
time.sleep(10)

print("點擊搜索")
driver.find_elements_by_xpath('//*[@id="sheet-search-button"]/div/div/div')[1].click()
time.sleep(3)

print("開始點擊搜索框")
getinput = driver.find_element_by_xpath('//*[@id="search-panel-input"]')
getinput.send_keys("北極熊")
time.sleep(2)
print("已獲取該位置" + getinput.location)
time.sleep(2)

# Key.tab選擇,Kys.enter確定結束
driver.find_element_by_id('alloy-simple-text-editor').click()
driver.find_element_by_id('alloy-simple-text-editor').send_keys("")
ActionChains(driver).key_down(Keys.TAB).perform()
ActionChains(driver).key_down(Keys.TAB).perform()
driver.find_element_by_id('alloy-simple-text-editor').click()
driver.find_element_by_id('alloy-simple-text-editor').send_keys("是")
ActionChains(driver).key_down(Keys.TAB).perform()
ActionChains(driver).key_down(Keys.TAB).perform()
driver.find_element_by_id('alloy-simple-text-editor').click()
driver.find_element_by_id('alloy-simple-text-editor').send_keys("是")
ActionChains(driver).key_down(Keys.TAB).perform()
ActionChains(driver).key_down(Keys.TAB).perform()
ActionChains(driver).key_down(Keys.TAB).perform()
driver.find_element_by_id('alloy-simple-text-editor').click()
driver.find_element_by_id('alloy-simple-text-editor').send_keys("否")
ActionChains(driver).key_down(Keys.TAB).perform()
ActionChains(driver).key_down(Keys.TAB).perform()
driver.find_element_by_id('alloy-simple-text-editor').click()
driver.find_element_by_id('alloy-simple-text-editor').send_keys("否")
ActionChains(driver).key_down(Keys.TAB).perform()
driver.find_element_by_id('alloy-simple-text-editor').click()
driver.find_element_by_id('alloy-simple-text-editor').send_keys("填寫你的地址")
driver.find_element_by_id('alloy-simple-text-editor').send_keys(Keys.ENTER)
time.sleep(1)

小結

上面的代碼是根據(jù)我所填寫的健康表流程寫的,或許你并不能直接拿過去用,(這也正是我所期望的,哈哈),但是里面的功能實現(xiàn)比較清楚的,這樣你就可以按照你的流程寫代碼了。Good good study, day day up.

到此這篇關于基于python+selenium自動健康打卡的文章就介紹到這了,更多相關selenium自動健康打卡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python pip安裝的包放在哪個目錄(site-packages目錄的位置)

    python pip安裝的包放在哪個目錄(site-packages目錄的位置)

    這篇文章主要介紹了python pip安裝的包放在哪個目錄(site-packages目錄的位置),通常安裝在python安裝目錄下的lib/site-packages目錄下,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 完美解決Pycharm中matplotlib畫圖中文亂碼問題

    完美解決Pycharm中matplotlib畫圖中文亂碼問題

    這篇文章主要介紹了完美解決Pycharm中matplotlib畫圖中文亂碼問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 已解決卸載pip重新安裝的方法

    已解決卸載pip重新安裝的方法

    粉絲群里面的一個小伙伴遇到問題跑來私信我,想用卸載pip重新安裝pip,但是發(fā)生了報錯(當時他心里瞬間涼了一大截,跑來找我求助,然后順利幫助他解決了,順便記錄一下希望可以幫助到更多遇到這個問題的小伙伴
    2023-04-04
  • Python?中?threading.Thread.join()?的使用方法示例詳解

    Python?中?threading.Thread.join()?的使用方法示例詳解

    threading.Thread.join()用于阻塞當前線程,直到調用它的線程對象執(zhí)行完成或者超時,在Python中,想要充分利用多線程的優(yōu)勢,就需要對threading模塊中的 Thread 類了解,這里有一個非常簡單的多線程程序,幫助理解 threading.Thread.join 方法,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Python數(shù)據(jù)結構dict常用操作代碼實例

    Python數(shù)據(jù)結構dict常用操作代碼實例

    這篇文章主要介紹了Python數(shù)據(jù)結構dict常用操作代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • python實現(xiàn)得到當前登錄用戶信息的方法

    python實現(xiàn)得到當前登錄用戶信息的方法

    這篇文章主要介紹了python實現(xiàn)得到當前登錄用戶信息的方法,結合實例形式分析了Python在Linux平臺以及Windows平臺使用相關模塊獲取用戶信息的相關操作技巧,需要的朋友可以參考下
    2019-06-06
  • Django中間件基礎用法詳解

    Django中間件基礎用法詳解

    這篇文章主要介紹了Django中間件基礎用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python代碼中引用已經(jīng)寫好的模塊、方法的兩種方式

    Python代碼中引用已經(jīng)寫好的模塊、方法的兩種方式

    這篇文章主要介紹了Python代碼中引用已經(jīng)寫好的模塊、方法,下面就介紹兩種方式,可以簡潔明了地調用自己在其他模塊寫的代碼,需要的朋友可以參考下
    2022-07-07
  • numpy如何刪除矩陣中的部分數(shù)據(jù)numpy.delete

    numpy如何刪除矩陣中的部分數(shù)據(jù)numpy.delete

    這篇文章主要介紹了numpy如何刪除矩陣中的部分數(shù)據(jù)numpy.delete問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 對Python中range()函數(shù)和list的比較

    對Python中range()函數(shù)和list的比較

    下面小編就為大家分享一篇對Python中range()函數(shù)和list的比較,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論