1. 程式人生 > >瀏覽器重啟會話重拾

瀏覽器重啟會話重拾

sleep cti ext 文檔 拾取 .get 失敗 頁碼 exc

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, NoSuchElementException

driver_list=[1,2]
driver_list[0]
=webdriver.Chrome() wait=WebDriverWait(driver_list[0],10) d_f_e=driver_list[0].find_element #容易出錯的地方是陳舊的driver session="21e0d1dbb207391e66143672a16fef1f"被加載到文檔導致信息不一致,解決辦法是函數執行操作時重新拾取最新的session #自定義方法 def EC_located(value): #重新獲取最新的session============ wait = WebDriverWait(driver_list[0], 10)#重點在這==============
d_f_e = driver_list[0].find_element#重點在這==================== try: ecl=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,value))) return ecl except TimeoutException: print(value,元素未加載成功,等待超時) #點擊下一頁的操作 u_r_l=[1,2] tb_url=u_r_l[0] def next_page():
try: #先記錄總頁數1.先看總頁數是否存在 2.記錄總頁數 total=EC_located(.total).text sub_page=int(re.findall(\d+,total)[0]) #先記錄當前高亮頁碼 page[0]=(int(EC_located(.item.active span).text)) # 檢查激活頁碼下一個是不是已經加載出來 next = EC_located(.item.active+li>a) next.click() #檢查高亮的頁碼選項是不是比剛才的+1 time.sleep(1) if next_ok(page[0]) ==True: print(ok) else: print(翻頁失敗,正在重試...) return next_page() except: print(driver_list[0]) #IP不能用了的處理辦法 print(IP不能用了,正在重啟瀏覽器) off_sta() def off_sta(): deiver = driver_list[0] # 先預先記錄本頁url地址,以備後面翻頁失敗後重啟調用url u_r_l[0] = driver_list[0].current_url tb_url = u_r_l[0] ‘‘‘關閉重試‘‘‘ try: driver_list[0].close() except: pass driver_list[0] = webdriver.Chrome() driver_list[0].get(tb_url) next_page() page=[haha,xixi] def next_ok(page_num): print(執行了next_ok(page_num)函數) if int(page_num)==int(EC_located(.item.active span).text): print(翻頁不成功) yes=False else: print(翻頁成功) yes=True return yes

瀏覽器重啟會話重拾