forked from kinoshitakenta/auto_login_EIP
feature: log in again after timeout, can handle the correct window
This commit is contained in:
parent
e0afd876b6
commit
f66cf7aeac
|
@ -50,9 +50,10 @@ class Action():
|
||||||
# time.sleep(0.05)
|
# time.sleep(0.05)
|
||||||
|
|
||||||
# dropdown_element = self.driver.find_element(By.ID, "CopyOfComboBox")
|
# dropdown_element = self.driver.find_element(By.ID, "CopyOfComboBox")
|
||||||
# # * 因沒有更換值,所以無法收回選單
|
# # * 基於UI本身的邏輯,因下拉式選單沒有更換值,所以無法收回選單
|
||||||
# # // select = Select(dropdown_element)
|
# # // select = Select(dropdown_element)
|
||||||
# # // select.select_by_value("1_0") # 考勤管理作業
|
# # // select.select_by_value("1_0") # 考勤管理作業
|
||||||
|
|
||||||
# # * 以下列方式替代
|
# # * 以下列方式替代
|
||||||
# dropdown_element.find_element(
|
# dropdown_element.find_element(
|
||||||
# By.XPATH, ".//option[@value='1_0']").click() # 考勤管理作業
|
# By.XPATH, ".//option[@value='1_0']").click() # 考勤管理作業
|
||||||
|
|
|
@ -66,12 +66,29 @@ def keep_login_status(driver: webdriver.Chrome, login_info: LoginInfo):
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
|
||||||
# * If login has pop a new window, switch main window to the new one.
|
# * If login has pop a new window, switch main window to the new one.
|
||||||
for handle in driver.window_handles:
|
login_page_handle = ""
|
||||||
if handle != top_page:
|
main_page_handle = ""
|
||||||
new_page = handle
|
|
||||||
|
|
||||||
driver.switch_to.window(top_page)
|
for handle in driver.window_handles:
|
||||||
|
driver.switch_to.window(handle)
|
||||||
|
if "CHI MotorWeb - " in driver.title:
|
||||||
|
main_page_handle = handle
|
||||||
|
elif "CHI MOTOR WEB ERP 登入" in driver.title:
|
||||||
|
login_page_handle = handle
|
||||||
|
|
||||||
|
# * get the page handle that should be stay
|
||||||
|
if main_page_handle:
|
||||||
|
stay_page_handle = main_page_handle
|
||||||
|
elif login_page_handle:
|
||||||
|
stay_page_handle = login_page_handle
|
||||||
|
else:
|
||||||
|
stay_page_handle = top_page
|
||||||
|
|
||||||
|
# * close unnecessary pages
|
||||||
|
for handle in driver.window_handles:
|
||||||
|
if handle != stay_page_handle:
|
||||||
|
driver.switch_to.window(handle)
|
||||||
driver.close()
|
driver.close()
|
||||||
|
|
||||||
driver.switch_to.window(new_page)
|
driver.switch_to.window(stay_page_handle)
|
||||||
driver.maximize_window()
|
driver.maximize_window()
|
||||||
|
|
Loading…
Reference in New Issue