Gitee pages无法更新问题
问题
使用Gitee pages
部署了静态页面,Gitee pages
上始终无法显示修改过后的静态页面。
原因:Gitee
免费版需要自己手动在设置里点击更新。
解决方法
1、安装puppeteer
2、编写脚本更新Gitee Page
,参考脚本解决 gitee-page
无法自动更新
创建gitee.js
文件,放入以下部分:
// 此处安装版本为 1.8.0
const puppeteer = require('puppeteer');
async function giteeUpdate() {
const browser = await puppeteer.launch({
// 此处可以使用 false 有头模式进行调试, 调试完注释即可
headless: false,
});
const page = await browser.newPage();
await page.goto('https://gitee.com/login');
// 1. 选中账号控件
let accountElements = await page.$x('//*[@id="user_login"]') // 此处使用 xpath 寻找控件,下同
// 2. 填入账号
await accountElements[0].type('你的 gitee 账户')
// 3. 选中密码控件
let pwdElements = await page.$x('//*[@id="user_password"]')
// 4. 填入密码
await pwdElements[0].type('你的 gitee 密码')
// 5. 点击登录
let loginButtons = await page.$x('//*[@id="new_user"]/div[2]/div/div/div[4]/input')
await loginButtons[0].click()
// 6. 等待登录成功
await page.waitFor(1000)
await page.goto('你的 gitee page 更新按钮页面'); // 比如: https://gitee.com/yang0033/hexo-blog/pages
// 7.1. 监听步骤 7 中触发的确认弹框,并点击确认
await page.on('dialog', async dialog => {
console.log('确认更新')
dialog.accept();
})
// 7. 点击更新按钮,并弹出确认弹窗
let updateButtons = await page.$x('//*[@id="pages-branch"]/div[7]')
await updateButtons[0].click()
// 8. 轮询并确认是否更新完毕
while (true) {
await page.waitFor(2000)
try {
// 8.1 获取更新状态标签
deploying = await page.$x('//*[@id="pages_deploying"]')
if (deploying.length > 0) {
console.log('更新中...')
} else {
console.log('更新完毕')
break;
}
} catch (error) {
break;
}
}
await page.waitFor(500);
// 10.更新完毕,关闭浏览器
browser.close();
}
giteeUpdate();
3、相关版本
- puppeteer: 8.0.0
- npm: 6.14.11