Skip to content

Commit

Permalink
feat: 超时和密码错误逻辑分开
Browse files Browse the repository at this point in the history
  • Loading branch information
14790897 committed Jan 12, 2025
1 parent f24a7d1 commit c2f61e3
Show file tree
Hide file tree
Showing 3 changed files with 626 additions and 381 deletions.
24 changes: 15 additions & 9 deletions bypasscf.js
Original file line number Diff line number Diff line change
Expand Up @@ -346,19 +346,25 @@ async function login(page, username, password, retryCount = 3) {
await Promise.all([
page.waitForNavigation({ waitUntil: "domcontentloaded" }), // 等待 页面跳转 DOMContentLoaded 事件
// 去掉上面一行会报错:Error: Execution context was destroyed, most likely because of a navigation. 可能是因为之后没等页面加载完成就执行了脚本
page.click("#login-button"), // 点击登录按钮触发跳转
page.click("#login-button", { force: true }), // 点击登录按钮触发跳转
]); //注意如果登录失败,这里会一直等待跳转,导致脚本执行失败 这点四个月之前你就发现了结果今天又遇到(有个用户遇到了https://linux.do/t/topic/169209/82),但是你没有在这个报错你提示我8.5
} catch (error) {
console.error(`Error during login: ${error.message}`);
if (retryCount > 0) {
console.log("Retrying login...");
await delayClick(2000); // 增加重试前的延迟
return await login(page, username, password, retryCount - 1);
} else {
if (await page.locator(".alert.alert-error")) {
throw new Error(
`Navigation timed out in login.请检查用户名密码是否正确(注意密码中是否有特殊字符,需要外面加上双引号指明这是字符串,如果密码里面有双引号则需要转义)(注意GitHub action不需要增加处理,也不需要加引号),失败用户 ${username}, 密码 $错误信息:,
`非超时错误,请检查用户名密码是否正确(注意密码中是否有特殊字符,需要外面加上双引号指明这是字符串,如果密码里面有双引号则需要转义)(注意GitHub action不需要增加处理,也不需要加引号),失败用户 ${username}, 密码 $错误信息:,
${error}`
);
} else {
if (retryCount > 0) {
console.log("Retrying login...");
await delayClick(2000); // 增加重试前的延迟
return await login(page, username, password, retryCount - 1);
} else {
throw new Error(
`Navigation timed out in login.超时了,
${error}`
); //{password}
); //{password}
}
}
}
await delayClick(1000);
Expand Down
24 changes: 15 additions & 9 deletions bypasscf_likeUser.js
Original file line number Diff line number Diff line change
Expand Up @@ -346,19 +346,25 @@ async function login(page, username, password, retryCount = 3) {
await Promise.all([
page.waitForNavigation({ waitUntil: "domcontentloaded" }), // 等待 页面跳转 DOMContentLoaded 事件
// 去掉上面一行会报错:Error: Execution context was destroyed, most likely because of a navigation. 可能是因为之后没等页面加载完成就执行了脚本
page.click("#login-button"), // 点击登录按钮触发跳转
page.click("#login-button", { force: true }), // 点击登录按钮触发跳转
]); //注意如果登录失败,这里会一直等待跳转,导致脚本执行失败 这点四个月之前你就发现了结果今天又遇到(有个用户遇到了https://linux.do/t/topic/169209/82),但是你没有在这个报错你提示我8.5
} catch (error) {
console.error(`Error during login: ${error.message}`);
if (retryCount > 0) {
console.log("Retrying login...");
await delayClick(2000); // 增加重试前的延迟
return await login(page, username, password, retryCount - 1);
} else {
if (await page.locator(".alert.alert-error")) {
throw new Error(
`Navigation timed out in login.请检查用户名密码是否正确(注意密码中是否有特殊字符,需要外面加上双引号指明这是字符串,如果密码里面有双引号则需要转义)(注意GitHub action不需要增加处理,也不需要加引号),失败用户 ${username}, 密码 $错误信息:,
`非超时错误,请检查用户名密码是否正确(注意密码中是否有特殊字符,需要外面加上双引号指明这是字符串,如果密码里面有双引号则需要转义)(注意GitHub action不需要增加处理,也不需要加引号),失败用户 ${username}, 密码 $错误信息:,
${error}`
);
} else {
if (retryCount > 0) {
console.log("Retrying login...");
await delayClick(2000); // 增加重试前的延迟
return await login(page, username, password, retryCount - 1);
} else {
throw new Error(
`Navigation timed out in login.超时了,可能是IP质量问题,失败用户 ${username},
${error}`
); //{password}
); //{password}
}
}
}
await delayClick(1000);
Expand Down
Loading

0 comments on commit c2f61e3

Please sign in to comment.