Ich habe Code in Python in Kombination mit Selen geschrieben. Ich wollte den Tisch von einer Webseite analysieren. Ich habe es funktioniert. Es kommt jedoch zu Problemen, wenn ich versuche, auf die Schaltfläche für die nächste Seite zu klicken. Der Scraper analysiert die Tabelle nur von der ersten Seite und anstatt auf die nächste Schaltfläche zu klicken, wird die Eingabe beendet, ohne dass ein Fehler auftritt. Also, ich kann nicht verstehen, was ich vermisse. HierProblem beim Klicken auf die Schaltfläche für die nächste Seite
ist der vollständige Code für Ihre Überlegung:
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()
Elements, in dem die nächste Seite-Schaltfläche vorhanden ist:
<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>
Try driver.find_element_by_css_selector ("a [Klasse * ersetzen = 'ui-paging-next'] "). click() oder find_element_by_link_text ('Next'). click() – Grasshopper
Danke Gr Asshopper, für Sie antworten. Es hat nicht den Trick mit CSS-Selektor, aber es scheint mit Link-Text zu arbeiten. Ich werde nach dem Testen zu Ihnen zurückkommen. Vielen Dank. – SIM
Es klickt auf den Link, löst aber einen weiteren Fehler aus. "raise exception_class (message, screen, stacktrace) selen.common.exceptions.StaleElementReferenceException: Nachricht: veraltetes Element reference: Element ist nicht an das Seitendokument angehängt" – SIM