我用Python編寫一些代碼與硒組合。我打算從網頁解析表格。我有它的工作。但是,當我嘗試點擊下一頁按鈕時出現問題。刮板只從第一頁,而不是點擊下一步按鈕它退出而不引發任何錯誤解析表。所以,我不明白我錯過了什麼。麻煩點擊按鈕,下一個
這是給你考慮全碼:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get("https://toolkit.financialexpress.net/santanderam")
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'table.fe-datatable')))
tab_data = driver.find_element_by_css_selector('table.fe-datatable')
while True:
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'tr')))
list_rows = [[cell.text for cell in row.find_elements_by_css_selector('td')]
for row in tab_data.find_elements_by_css_selector('tr')]
for data in list_rows:
print(data)
try:
driver.find_element_by_css_selector('a.ui-paging-next').click()
except:
break
driver.quit()
元素中的下一個頁面按鈕存在:
<div class="pagination ui-widget"><span class="ui-paging-current ui-state-default ui-state-disabled ui-corner-all ui-paging-prev">Prev</span><span class="ui-paging-current ui-state-default ui-state-disabled ui-state-highlight ui-corner-all">1</span><a class="ui-paging-button ui-state-default ui-corner-all" href="#">2</a><a class="ui-paging-button ui-state-default ui-corner-all" href="#">3</a><a class="ui-paging-button ui-state-default ui-corner-all" href="#">4</a><span class="ui-state-default ui-corner-all ui-state-disabled ui-paging-ellipse">...</span><a class="ui-paging-button ui-state-default ui-corner-all ep" href="#">7</a><a class="ui-paging-button ui-state-default ui-corner-all ui-paging-next" href="#">Next</a></div>
嘗試driver.find_element_by_css_selector(「一[類* = 'UI-尋呼下一']「)。單擊()或find_element_by_link_text( '下一步')。單擊() – Grasshopper
的Gr感謝螞蚱,爲你答案。它沒有使用CSS選擇器的技巧,但它似乎與鏈接文本。測試後會回覆你。謝謝。 – SIM
它確實點擊鏈接,但會引發另一個錯誤。 「raise exception_class(message,screen,stacktrace) selenium.common.exceptions.StaleElementReferenceException:消息:陳舊的元素引用:元素沒有附加到頁面文檔中」 – SIM