Индуцируйте WebDriverWait
() и ждите element_to_be_clickable
()
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()
Импортируйте следующие библиотеки.
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
Как только вы достигнете страницы next
, вам нужно щелкните каждый page button
до go next page
. Для приведенного мной примера диапазон до 15 страниц можно увеличить.
url="http://sekolah.data.kemdikbud.go.id/"
driver.get(url)
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()
for i in range(2,15):
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//ul[@id='list']//a[text()='" + str(i) + "']"))).click()
print("page number #" + str(i))
time.sleep(1)
except:
print("No such element")
break

Полный код:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
option = webdriver.ChromeOptions()
option.add_argument('--incognito')
driver=webdriver.Chrome(options=option)
url="http://sekolah.data.kemdikbud.go.id/"
driver.get(url)
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()
for i in range(2,15):
try:
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//ul[@id='list']//a[text()='" + str(i) + "']"))).click()
print("page number #" + str(i))
time.sleep(1)
except:
print("No such element")
break