自动更新gitee pages,使用node脚本(更新于2023/6/10)

学习自简书https://www.jianshu.com/p/6460df84a099,但是gitee页面中获取一些dom的方式有所变化,所以更新如下

1.新建文件夹

npm init -y 
npm i -s puppeteer@1.8.0

package.json设置如下

{
  "dependencies": {
    "puppeteer": "1.8.0"
  },
  "name": "git-update-pages",
  "bin": {
    "git-update-pages": "index.js"
  }
}

2.新建index.js

#! /usr/bin/env node
// 此处安装版本为 1.8.0
const puppeteer = require("puppeteer")

// 主要原理在于使用xpath获取html页面dom元素,脚本代替小手自动触发点击事件
async function giteeUpdate() {
  const browser = await puppeteer.launch({
    // 此处可以使用 false 有头模式进行调试, 调试完注释即可
    headless: false
  })
  const page = await browser.newPage()
  await page.goto("https://gitee.com/login")
  
  // 1. 获取账号input,自动输入
  let accountElements = await page.$x('//*[@id="user_login"]') 
  //  🚨需要设置为自己的gitee账户🚨
  await accountElements[0].type("自己的gitee账户")
  
  // 2. 获取密码input,自动输入
  let pwdElements = await page.$x('//*[@id="user_password"]')
  // 🚨需要设置自己的gitee密码🚨
  await pwdElements[0].type("自己的gitee密码")
  
  // 3. 获取登录按钮,触发点击事件
  let loginButtons = await page.$x('//*[@class="git-login-form-fields"]/div[4]/input')
  await loginButtons[0].click()
  
  // 4. 等待登录成功
  await page.waitFor(1000)
  // 🚨需要设置自己的gitee pages页面🚨
  await page.goto("https://gitee.com/你的用户名/你的仓库名/pages")
  
  // 5. 监听触发的确认弹框,并点击确认
  await page.on("dialog", async dialog => {
    console.log("确认更新")
    dialog.accept()
  })
  
  // 6. 点击更新按钮,并弹出确认弹窗
  let updateButtons = await page.$x('//*[@id="pages-branch"]/div[6]');
  await updateButtons[0].click()
  
  //7. 轮询并确认是否更新完毕
  while (true) {
    await page.waitFor(15000);
    try {
      // 获取更新状态标签
      deploying = await page.$x('//*[@id="pages_deploying"]')
      if (deploying.length > 0) {
        console.log("更新中...")
      } else {
        console.log("更新完毕")
        break
      }
    } catch (error) {
      break
    }
  }
  await page.waitFor(500)
  
  // 8.更新完毕,关闭浏览器
  browser.close()
}

giteeUpdate()

3.本地使用该npm包

项目根目录运行命令

npm link 

现在就可以本地使用git-update-pages命令了,想自定义命令名的话在package.json中自行修改bin字段即可

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值