Skip to content

Commit

Permalink
fix: 错误处理
Browse files Browse the repository at this point in the history
  • Loading branch information
14790897 committed May 14, 2024
1 parent 584faf6 commit c1ad79f
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 21 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cron_read.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10 # 设置作业超时时间为10分钟
timeout-minutes: 20 # 设置作业超时时间为20分钟

strategy:
matrix:
Expand Down
50 changes: 30 additions & 20 deletions pteer.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,30 @@ function delayClick(time) {
}

(async () => {
if (usernames.length !== passwords.length) {
console.log(usernames.length, usernames, passwords.length, passwords);
console.log("用户名和密码的数量不匹配!");
return;
}
try {
if (usernames.length !== passwords.length) {
console.log(usernames.length, usernames, passwords.length, passwords);
console.log("用户名和密码的数量不匹配!");
return;
}

// 并发启动浏览器实例进行登录
const loginPromises = usernames.map((username, index) => {
const password = passwords[index];
const delay = index * delayBetweenInstances;
return new Promise((resolve) => {
setTimeout(() => {
launchBrowserForUser(username, password).then(resolve);
}, delay);
// 并发启动浏览器实例进行登录
const loginPromises = usernames.map((username, index) => {
const password = passwords[index];
const delay = index * delayBetweenInstances;
return new Promise((resolve, reject) => {
setTimeout(() => {
launchBrowserForUser(username, password).then(resolve).catch(reject);
}, delay);
});
});
});

// 等待所有登录操作完成
await Promise.all(loginPromises);
// 等待所有登录操作完成
await Promise.all(loginPromises);
} catch (error) {
// 错误处理逻辑
console.error("发生错误:", error);
}
})();
async function launchBrowserForUser(username, password) {
try {
Expand Down Expand Up @@ -184,9 +189,14 @@ async function login(page, username, password) {
// 假设登录按钮的ID是'login-button',点击登录按钮
await page.waitForSelector("#login-button");
await delayClick(500); // 模拟在点击登录按钮前的短暂停顿
await Promise.all([
page.waitForNavigation({ waitUntil: "domcontentloaded" }), // 等待 页面跳转 DOMContentLoaded 事件
page.click("#login-button"), // 点击登录按钮触发跳转
]); //注意如果登录失败,这里会一直等待跳转,导致脚本执行失败
try {
await Promise.all([
page.waitForNavigation({ waitUntil: "domcontentloaded" }), // 等待 页面跳转 DOMContentLoaded 事件
page.click("#login-button"), // 点击登录按钮触发跳转
]); //注意如果登录失败,这里会一直等待跳转,导致脚本执行失败
} catch (error) {
console.error("Navigation timed out in login.:", error);
throw new Error("Navigation timed out in login.");
}
await delayClick(1000);
}

0 comments on commit c1ad79f

Please sign in to comment.