一鍵更新碼云Pages

前言

最近在用碼云的pages來(lái)做靜態(tài)頁(yè)面的服務(wù)器。發(fā)現(xiàn)每次修改內(nèi)容后都要去倉(cāng)庫(kù)點(diǎn)一下更新才能將修改內(nèi)容同步到網(wǎng)頁(yè)。實(shí)在是麻煩。當(dāng)然碼云的pages有會(huì)員服務(wù)可以自動(dòng)同步更新,但作為一個(gè)白嫖黨,這輩子都不可能花錢(qián)買(mǎi)會(huì)員的。

目標(biāo)

在本地修改內(nèi)容后,在gitbash中輸入refresh命令即可將修改內(nèi)容同步到網(wǎng)頁(yè)。

實(shí)現(xiàn)思路

使用python的webdriver自動(dòng)化pages更新流程。
使用shell腳本自動(dòng)提交修改,并調(diào)用python腳本。
使用alias設(shè)置執(zhí)行shell腳本的別名。

代碼實(shí)現(xiàn)

更新Pages的python腳本

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as Wait

print("start refresh gitee pages...")

repo_user_name = "xxxx"
repo_name = "xxxx"
login_user = "xxxx"
login_pwd = "xxxx"

url = "https://gitee.com/"+repo_user_name+"/"+repo_name+"/pages"

driver = "D:/chromedriver.exe"
chrome_options = Options()
chrome_options.add_argument("--window-size=1920,1080")
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--headless")
browser=webdriver.Chrome(executable_path=driver, options=chrome_options)

browser.get(url)

Wait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "item.git-nav-user__login-item")))
print("load finish. url=" + url)
login_btn = browser.find_element_by_class_name("item.git-nav-user__login-item")
login_btn.click()

Wait(browser, 10).until(EC.presence_of_element_located((By.ID, "user_login")))
Wait(browser, 10).until(EC.presence_of_element_located((By.ID, "user_password")))
print("login page load finish.")
user_input = browser.find_element_by_id("user_login")
pwd_input = browser.find_element_by_id("user_password")
login_btn = browser.find_element_by_name("commit")
user_input.send_keys(login_user)
pwd_input.send_keys(login_pwd)
login_btn.click()

Wait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "button.orange.redeploy-button.ui.update_deploy")))
print("login finish.")
deploy_btn = browser.find_element_by_class_name('button.orange.redeploy-button.ui.update_deploy')

browser.execute_script("window.scrollTo(100, document.body.scrollHeight);")
deploy_btn.click()
dialog = browser.switch_to.alert
dialog.accept()
print("refresh gitee pages finish.")
browser.close()

提交更新的shell腳本

git add .
git commit -m '.'
git push origin master
/d/PythonCode/venv/Scripts/python.exe /d/PythonCode/refresh_gitee_page.py

設(shè)置執(zhí)行shell腳本的別名

alias refresh='sh refresh.sh'

最后

沒(méi)有玩過(guò)webdriver的同學(xué)可以看看這篇文章,講的很詳細(xì)。
https://www.cnblogs.com/wulixia/p/11200023.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容