前言
最近在用碼云的pages來做靜態(tài)頁面的服務(wù)器。發(fā)現(xiàn)每次修改內(nèi)容后都要去倉庫點(diǎn)一下更新才能將修改內(nèi)容同步到網(wǎng)頁。實在是麻煩粹排。當(dāng)然碼云的pages有會員服務(wù)可以自動同步更新胁艰,但作為一個白嫖黨,這輩子都不可能花錢買會員的腋么。
目標(biāo)
在本地修改內(nèi)容后咕娄,在gitbash中輸入refresh命令即可將修改內(nèi)容同步到網(wǎng)頁。
實現(xiàn)思路
使用python的webdriver自動化pages更新流程珊擂。
使用shell腳本自動提交修改圣勒,并調(diào)用python腳本费变。
使用alias設(shè)置執(zhí)行shell腳本的別名。
代碼實現(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'
最后
沒有玩過webdriver的同學(xué)可以看看這篇文章圣贸,講的很詳細(xì)挚歧。
https://www.cnblogs.com/wulixia/p/11200023.html