from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from sqlalchemy import Column,String,create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from webdriver_manager.chrome import ChromeDriverManager import pandas as pd import traceback import time import os def LongLogin(): try: driver.get(urlkey) except: tttt7="websiteerror" return tttt7 elementcount=len(driver.find_elements_by_css_selector("input.lineForIE6[data-bind='value: Account, event: { keyup: function (d, e) { OnKeyUpLogin(e); } }']")) print(elementcount) if (elementcount==1): driver.find_element_by_css_selector("input.lineForIE6[data-bind='value: Account, event: { keyup: function (d, e) { OnKeyUpLogin(e); } }']").send_keys(adminkey) driver.find_element_by_css_selector("input.lineForIE6[data-bind='value: Password, event: { keyup: function (d, e) { OnKeyUpLogin(e); } }']").send_keys(passkey) driver.find_element_by_css_selector("[data-bind='click: GoLogin']").click() try: WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_id("mainFrame")) iframe1=driver.find_element_by_id("mainFrame") tttt7="OK" return tttt7 except: try: iframe1=driver.find_element_by_id("gcontent") tttt7="OK" return tttt7 except: tttt7="ADPSERROR" return tttt7 elif (elementcount==0): tttt7=ShortLogin() return tttt7 def ShortLogin(): driver.get(urlkey) try: WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_name("main")) except: tttt7="websiteerror" return tttt7 firstframe1=driver.find_element_by_name("main") driver.switch_to.frame(firstframe1) driver.find_element_by_id("user").send_keys(adminkey) driver.find_element_by_id("pass").send_keys(passkey) LoginBtnCount1=len(driver.find_elements_by_name("loginbutton")) LoginBtnCount2=len(driver.find_elements_by_class_name("btn.btn-group.btn-default")) LoginBtnCount3=len(driver.find_elements_by_css_selector("button[onclick*='login();']")) if LoginBtnCount1==1: driver.find_element_by_name("loginbutton").click() elif LoginBtnCount2==1: driver.find_element_by_class_name("btn.btn-group.btn-default").click() elif LoginBtnCount3==1: driver.find_element_by_css_selector("button[onclick*='login();']").click() try: driver.switch_to.default_content() frame2=len(driver.find_elements_by_name("menu")) print(frame2) print(LoginBtnCount1,LoginBtnCount2,LoginBtnCount3) if frame2==1: tttt="OK" else: tttt="ADPSERROR" return tttt except: tttt="ADPSERROR" return tttt try: if os.path.exists("101.txt") or os.path.exists("365.txt"): FIle="lorv.csv" File2="101.txt" File3="365.txt" with open('lorv.csv', newline='') as csvfile: loopper2=pd.read_csv("lorv.csv",encoding='utf8',dtype='object') print(loopper2) loopper2=loopper2.values print(loopper2) os.remove(FIle) if os.path.exists("101.txt"): urlkey="http:\\"+loopper2[0][1] os.remove(File2) elif os.path.exists("365.txt"): urlkey="https:\\"+loopper2[0][1] os.remove(File3) else: urlkey="http:\\"+loopper2[0][1] adminkey=loopper2[0][2] passkey=loopper2[0][3] if loopper2[0][0]=="login": driver = webdriver.Chrome(ChromeDriverManager().install()) tttt2=LongLogin() print(tttt2) else: print("No TxT files") #time.sleep(5) except: traceback.print_exc() # 捕捉異常,並將異常傳播資訊輸出控制檯 traceback.print_exc(file=open('openweblog.txt', 'a')) print("NNNNNNNNN2N") #finally: #driver.quit()