Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 中文字幕曰韩一区二区不卡,国产逼逼视频,亚洲一区二区免费视频

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          基于python + selenium自動(dòng)健康打卡

          基于python + selenium自動(dòng)健康打卡

          錄:

          1. 使用的工具
          2. 代碼
          3. 小結(jié)

          使用的工具

          需要有一定的python,html基礎(chǔ),和實(shí)踐能力(畢竟實(shí)踐出真知,實(shí)踐能力強(qiáng),你可以忽略前兩個(gè),你是最棒的?。?/span>

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

          5.置于桌面 將你寫(xiě)好的py文件放在桌面或者你設(shè)置開(kāi)機(jī)自啟動(dòng)管理運(yùn)行該程序就可以了

          接下來(lái)就是代碼了

          代碼中必要的地方都進(jìn)行了注釋?zhuān)⑨尩枚嗟牡胤骄褪俏彝A糨^久的地方,,,實(shí)習(xí)自動(dòng)打卡的功能算是實(shí)現(xiàn)了,但還是有一些問(wèn)題,比如說(shuō)網(wǎng)絡(luò)延時(shí),當(dāng)網(wǎng)頁(yè)還未加載出來(lái),你就無(wú)法定位該html元素,該程序就無(wú)法正常執(zhí)行完操作,可以發(fā)一封郵件提醒你補(bǔ)填。歡迎大家共同探討遇到的問(wèn)題或者文章中有其他不足之處還望雅正。

          import time
          from selenium import webdriver
          from selenium.webdriver.common.keys import Keys
          from selenium.webdriver.common.action_chains import ActionChains
          
          # 腳本自動(dòng)登錄該網(wǎng)頁(yè)
          driver=webdriver.Chrome()
          # 將健康表的地址copy過(guò)來(lái)就行
          driver.get("你的健康表地址")
          time.sleep(2)
          
          print("開(kāi)始點(diǎn)擊----立即登錄")
          # 第一次點(diǎn)擊登錄跳轉(zhuǎn)
          driver.find_element_by_xpath('//*[@id="header-login-btn"]').click()
          time.sleep(5)
          
          print("開(kāi)始點(diǎn)擊快速登錄")
          
          # # selenium判斷元素是否可以點(diǎn)擊或者處理
          # element=driver.find_element_by_id("img_out_191736586")
          
          # element=driver.find_element_by_xpath('//*[@id="img_out_191733686"]')
          # bianji=element.is_enabled()   #是否可以編輯,或者按鈕是否可以點(diǎn)擊
          # xinashi=element.is_displayed()  #:判斷元素是否顯示
          # xunazhong=element.is_selected()  #:判斷元素是否選中狀態(tài)
          # print(bianji,xinashi,xunazhong)
          # element.click()
          
          # 想了想為啥定位不到那個(gè)快速登錄元素,原來(lái)html知識(shí)不夠,切進(jìn)iframe
          driver.switch_to.frame(0)  # 1.用frame的index來(lái)定位,第一個(gè)是0
          # driver.switch_to.frame("frame1")  # 2.用id來(lái)定位
          # driver.switch_to.frame("myframe")  # 3.用name來(lái)定位
          # driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))  # 4.用WebElement對(duì)象來(lái)定位
          
          # 快捷登錄
          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("點(diǎn)擊大數(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("開(kāi)始點(diǎn)擊更多")
          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("點(diǎn)擊搜索")
          driver.find_elements_by_xpath('//*[@id="sheet-search-button"]/div/div/div')[1].click()
          time.sleep(3)
          
          print("開(kāi)始點(diǎn)擊搜索框")
          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確定結(jié)束
          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("填寫(xiě)你的地址")
          driver.find_element_by_id('alloy-simple-text-editor').send_keys(Keys.ENTER)
          time.sleep(1)

          小結(jié)

          上面的代碼是根據(jù)我所填寫(xiě)的健康表流程寫(xiě)的,或許你并不能直接拿過(guò)去用,但是里面的功能實(shí)現(xiàn)比較清楚的,這樣你就可以按照你的流程寫(xiě)代碼了。

          感謝閱讀!??!

          多說(shuō)一句,很多人學(xué)Python過(guò)程中會(huì)遇到各種煩惱問(wèn)題,沒(méi)有人解答容易放棄。小編是一名python開(kāi)發(fā)工程師,這里有我自己整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開(kāi)發(fā)、爬蟲(chóng)、數(shù)據(jù)分析、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)等。想要這些資料的可以關(guān)注小編,并在后臺(tái)私信小編:“01”即可領(lǐng)取。

          經(jīng)完成了兩項(xiàng)提案,目前正在考慮JavaScript背后的技術(shù)

          ECMAScript 2019是規(guī)劃的下一版規(guī)范,作為JavaScript的基礎(chǔ),正在向前推進(jìn)。到目前為止,前兩個(gè)提案已達(dá)到“完成”階段。

          這些提案包括:

          • Symbol.prototype.description,一個(gè)訪(fǎng)問(wèn)器屬性,其集合訪(fǎng)問(wèn)器未定義。它的get訪(fǎng)問(wèn)器函數(shù)表現(xiàn)步聚為:比如定義s為這個(gè)值,讓sym作為?thisSymbolValue(s),然后返回sym.[[Description]]。這樣做的目標(biāo)是直接暴露symbol的[[Description]]內(nèi)部插槽以代替只通過(guò)Symbol.prototype.toString的方式。
          • 改變?yōu)镕unction.prototype.toString。已經(jīng)提出了修訂,例如不需要為使用ECMAScript代碼定義的所有函數(shù)保留源文本的實(shí)現(xiàn)。

          可能會(huì)有更多修訂。監(jiān)督規(guī)范的ECMA委員會(huì)將在會(huì)議月考慮更多可能包含在ECMAScript 2019中的變化:

          • Object.fromEntries,提供了一種新的靜態(tài)方法,用于將鍵值對(duì)列表轉(zhuǎn)換為對(duì)象。
          • String.prototype.trimStart和String.prototype.trimEnd。這些修訂背后的基本原理是所有主要引擎都實(shí)現(xiàn)了相應(yīng)的trimLeft和trimRigh沒(méi)有標(biāo)準(zhǔn)規(guī)范的t函數(shù)。對(duì)于具有一致性padStart/padEnd,trimStart,trimEnd,trimLeft,和trimRight被提議作為別名用于網(wǎng)絡(luò)的兼容性。
          • 更新以JSON.stringify發(fā)出格式良好的UTF-16(Unicode轉(zhuǎn)換格式)。目前,可能會(huì)為代理代碼點(diǎn)發(fā)出格式錯(cuò)誤的代碼單元。

          完成的ECMAScript版本通常每年6月發(fā)布,例如去年的ECMAScript 2018規(guī)范。

          家好啊,我是測(cè)評(píng)君,歡迎來(lái)到web測(cè)評(píng)。

          本期給大家?guī)?lái)一套PHP校園疫情防控系統(tǒng)的源碼。

          運(yùn)行環(huán)境

          • 服務(wù)器寶塔面板
          • PHP 7.2
          • Mysql 5.7及以上版本
          • Linux Centos7以上

          文字搭建教程

          1. 下載源碼,寶塔添加一個(gè)站點(diǎn),創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),導(dǎo)入school.sql數(shù)據(jù)庫(kù)文件
          2. 壓縮上傳后臺(tái)代碼到寶塔的網(wǎng)站根目錄當(dāng)中
          3. 修改根目錄.env與/config/database.php文件中的數(shù)據(jù)庫(kù)信息
          4. 網(wǎng)站運(yùn)行目錄指向public,偽靜態(tài)設(shè)置成以下規(guī)則:
          location / {
           if (!-e $request_filename){
            rewrite  ^(.*)$  /index.php?s=$1  last;   break;
           }
          }
          1. .后臺(tái)地址:http://域名/user/login
          2. 后臺(tái)默認(rèn)賬號(hào)密碼:admin 123456

          功能介紹:

          這套系統(tǒng)功能包括老師和學(xué)生角色權(quán)限,大數(shù)據(jù)圖表展示,掃碼進(jìn)出校園,校園行程記錄,生成二維碼,學(xué)生管理,網(wǎng)站管理,學(xué)生簽到打卡等功能等等。

          系統(tǒng)實(shí)測(cè)截圖

          獲取方式

          //ceping.club/761.html


          主站蜘蛛池模板: 亚洲成a人一区二区三区| 亚洲一区在线视频观看| 国产免费无码一区二区| 国产亚洲一区二区在线观看| 精品国产免费一区二区三区香蕉| 内射女校花一区二区三区| 久久人妻内射无码一区三区| 亚洲国产av一区二区三区丶| 伊人久久大香线蕉AV一区二区| 日韩精品一区二区三区国语自制 | 麻豆AV无码精品一区二区 | 精品视频一区二区| 无码人妻一区二区三区精品视频| 一区二区3区免费视频| 中文字幕VA一区二区三区| 亚洲av无码片区一区二区三区| 中文字幕无码不卡一区二区三区 | 蜜桃无码一区二区三区| 日本福利一区二区| 国产一区视频在线| 成人精品视频一区二区| 日韩精品无码一区二区三区AV | 亚洲一区二区影视| 无码人妻AⅤ一区二区三区水密桃| 国产在线观看一区精品| 亚洲av日韩综合一区二区三区 | 人妻无码一区二区不卡无码av| 精品国产一区二区三区在线 | 一区二区三区视频在线播放| 国产成人无码精品一区二区三区| 夜夜精品视频一区二区| 日本不卡一区二区三区| 无码国产精品一区二区高潮| 久久精品一区二区三区不卡| 在线观看国产一区二区三区| 精品视频一区二区三三区四区| 无码AV动漫精品一区二区免费| 99精品国产高清一区二区麻豆| 中文字幕一区二区三区精华液| 国精产品一区一区三区有限在线 | 在线|一区二区三区四区|