這是我的代碼。在Try
我正在檢查是否出現特定的文本加載,如果是這樣進一步處理。如果我理解正確,我的代碼在每次加載時顯式等待10秒,然後等待另一個15直到滿足條件?如何查看無法加載條件的頁面? (Selenium。Python)
問題是,如何在加載失敗並拋出異常後看到頁面內容?我想知道爲什麼發生這種情況,頁面上有什麼或缺少什麼。現在我無條件地重新加載同一頁面,但由於它被重新加載,它不是拋出異常的頁面。有沒有辦法從try
看到原始頁面?
P.S. while循環只是爲了檢查它的規模。
P.P.S.我也嘗試追加失敗的url到我遍歷的列表。我相信這是一個不好的做法。但是,它會造成什麼樣的危害,什麼纔是最好的解決方案?
driver = webdriver.PhantomJS(executable_path=r'C:\Python3\selenium\webdriver\phantomjs-2.1.1-windows\bin\phantomjs.exe',service_log_path=os.path.devnull)
while count < 20:
for line in q:
driver.get(line)
try:
WebDriverWait(driver, 40).until(EC.text_to_be_present_in_element((By.ID, 'searchProgressText'), 'Search complete'))
text=driver.find_element_by_class_name("sortbar").text.encode().decode('ascii','ignore')
start = text.find('Cheapest')
stop = text.find('Best')
date = (line[line.find('SDP0')+5:line.find('&AD')].split('&'))
date = date[0]+ ' - ' + date[3][5:]
dest = (' - ').join(line[line.find('SO0')+4:line.find('&SDP0')].split('&SD0='))
print()
print('count=', count)
print(line)
print(date)
print(dest)
print(text[start:stop])
count+=1
except:
print()
print('******')
print('******')
print("Failure", fcount, line)
fcount+=1
text=driver.find_element_by_id("searchProgressText").text.encode().decode('ascii','ignore')
print(text)
print('******')
print('******')
print()
time.sleep(2)
driver.close()
此特定行需要太長時間才能加載。從1.5秒到7秒。大多數情況下需要3秒鐘。
driver.get(line)
可以嗎?我如何影響加載時間?
請爲後續問題創建新問題,而不是編輯原始問題以詢問新問題。 –