嘗試以下代碼:
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
browser = webdriver.Firefox()
import time
count = 0
browser.get('https://www.autocodes.com/obd-code-list/powertrain/1')
while(1):
try:
linkElem = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//div[@id='pag']//a[contains(text(),'Next')]")))
except:
import traceback
traceback.print_exc()
print "last page reached."
break;
# type(linkElem)
count += 1
print "count " , count
linkElem.click() # follows the "Next" link
time.sleep(1)
代碼連續地檢查Next
元件是否存在於一個infinite while loop
。如果存在,點擊它。否則,打破循環。
注:count
變量添加調試語句知道循環計數。如果不需要,您可以刪除與之相關的代碼。
注:同樣,traceback
被添加到打印完整的曲線。只是打印異常跟蹤供您參考。
注意:break
關鍵字在達到最後一頁後跳出無限循環並從while
循環中出來並繼續執行下一個代碼。
參考文獻:
- http://selenium-python.readthedocs.io/waits.html
什麼屈服? http://stackoverflow.com/questions/231767/what-is-the-function-of-the-yield-keyword –
對不起忘了告訴我剛開始蟒蛇... –
沒有概率,檢查產部分例如,用一個簡單的沙箱的情況下嘗試瞭解 –