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

View File

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