fix: skip handling alerts that are already closed

Avoids handling alerts that have already been dismissed at the time of operation.
This commit is contained in:
kinoshitakenta 2025-07-03 10:18:35 +08:00
parent 2c5ca3c3d3
commit 5b87c86223
Signed by: kinoshitakenta
GPG Key ID: A811E8CA36EF425E
2 changed files with 6 additions and 4 deletions

View File

@ -51,6 +51,7 @@ def display_usage():
clear_screen()
for cmd, msg in get_usage():
print(f"{cmd}: {msg}")
print()
def main(opt):
@ -62,11 +63,12 @@ def main(opt):
login_info = LoginInfo(config_path)
driver = get_driver()
keep_login_status(driver, login_info)
action_agent = Action(driver)
display_usage()
keep_login_status(driver, login_info)
try:
while True:
cmd = input("\nInput action code: ").strip()

View File

@ -8,7 +8,7 @@ if sys.version_info >= (3, 11):
else:
import tomli as tomllib
from selenium import webdriver
from selenium.common.exceptions import NoAlertPresentException, UnexpectedAlertPresentException
from selenium.common.exceptions import NoAlertPresentException, NoSuchWindowException, UnexpectedAlertPresentException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
@ -101,7 +101,7 @@ def keep_login_status(driver: webdriver.Chrome, login_info: LoginInfo) -> bool:
print(f"Login error message: {alert.text}")
alert.accept()
return False # Skip remaining logic, login failed
except NoAlertPresentException:
except (NoAlertPresentException, NoSuchWindowException):
pass # No alert, proceed
time.sleep(2)
@ -119,7 +119,7 @@ def keep_login_status(driver: webdriver.Chrome, login_info: LoginInfo) -> bool:
print(f"Unexpected alert: {alert.text}")
alert.accept()
continue
except NoAlertPresentException:
except (NoAlertPresentException, NoSuchWindowException):
continue
if "CHI MotorWeb - " in title: