Skip to content

Commit

Permalink
fix: remove browsers
Browse files Browse the repository at this point in the history
  • Loading branch information
J1uShan9 committed Feb 27, 2025
1 parent 413e280 commit 4d5dc63
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 50 deletions.
81 changes: 32 additions & 49 deletions util/Captcha/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from os import getcwd, path
from time import sleep

import browsers
from loguru import logger
from selenium import webdriver
from selenium.webdriver.common.by import By
Expand Down Expand Up @@ -80,54 +79,38 @@ def Manual(self, challenge) -> str:
challenge: 流水号
返回: validate
"""
browser_list = [i for i in list(browsers.browsers()) if i["browser_type"] != "msie"]

if not browser_list:
logger.error("【验证】未找到可用浏览器/WebDriver! 建议选择其他方式登录")

selenium_drivers = {
"chrome": webdriver.Chrome,
"firefox": webdriver.Firefox,
"msedge": webdriver.Edge,
"safari": webdriver.Safari,
}

for browser in browser_list:
browser_type = browser["browser_type"]
print("请从打开的浏览器中手动验证, 获取极验校验值")
print("建议点选文字时, 持续两秒以上, 以保证能通过校验")
driver = selenium_drivers[browser_type]()

if not driver:
logger.error("【验证】所有浏览器/WebDriver尝试登录均失败")

driver.maximize_window()
try:
filepath = (
"file://" + self.geetest_path + "?gt=" + self.gt + "&challenge=" + challenge
)
driver.get(filepath)
wait = WebDriverWait(driver, 30)

event_btn = wait.until(EC.element_to_be_clickable((By.ID, "btn-gen")))
driver.execute_script("arguments[0].click();", event_btn)
sleep(0.8)
event_cap = wait.until(
EC.element_to_be_clickable((By.CLASS_NAME, "geetest_btn"))
)
driver.execute_script("arguments[0].click();", event_cap)

event_inp = wait.until(EC.visibility_of_element_located((By.ID, "validate")))

while True:
validate = event_inp.get_attribute("value")
if validate:
break
return validate

except Exception as e:
logger.error(f"【验证】{e}")
driver.quit()
driver = webdriver.Edge()

if not driver:
logger.error("【验证】浏览器尝试启动失败")

driver.maximize_window()
try:
filepath = (
"file://" + self.geetest_path + "?gt=" + self.gt + "&challenge=" + challenge
)
driver.get(filepath)
wait = WebDriverWait(driver, 30)

event_btn = wait.until(EC.element_to_be_clickable((By.ID, "btn-gen")))
driver.execute_script("arguments[0].click();", event_btn)
sleep(0.8)
event_cap = wait.until(
EC.element_to_be_clickable((By.CLASS_NAME, "geetest_btn"))
)
driver.execute_script("arguments[0].click();", event_cap)

event_inp = wait.until(EC.visibility_of_element_located((By.ID, "validate")))

while True:
validate = event_inp.get_attribute("value")
if validate:
break
return validate

except Exception as e:
logger.error(f"【验证】{e}")
driver.quit()

return ""

Expand Down
2 changes: 1 addition & 1 deletion util/Login/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def Selenium(self) -> dict:
driver = webdriver.Edge()

if not driver:
raise LoginException("所有浏览器/WebDriver尝试登录均失败")
raise LoginException("浏览器尝试启动失败")

driver.maximize_window()
try:
Expand Down

0 comments on commit 4d5dc63

Please sign in to comment.