gpt4 book ai didi

javascript - 使用 Python + Selenium 通过 while 循环点击下一页

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:01 25 4
gpt4 key购买 nike

我正在尝试浏览一个名为 iens 的网站上的不同页面。我正在使用 selenium + python 单击“volgende”(在荷兰语中表示“下一步”),但我希望我的程序继续单击下一步,直到没有更多页面使用 while 循环。所以在这种情况下,我希望我的程序在第 23 页结束。现在我可以通过关闭 cookie 弹出消息到达第 2 页,等待它关闭然后单击“Volgende”按钮。

我的代码是这样的:

 from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

chrome_path = '/Users/user/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_path)
driver.get('https://www.iens.nl/restaurant+utrecht')

#wait for cookie message
close_icon = WebDriverWait(driver, 5,
0.25).until(EC.visibility_of_element_located([By.CSS_SELECTOR,
'.cookiePolicy-close']))

close_icon.click()

#wait for cookie message to disappear
WebDriverWait(driver, 5,
0.25).until(EC.invisibility_of_element_located([By.CSS_SELECTOR,
'.cookiePolicy-close']))

click_icon = WebDriverWait(driver, 5,
0.25).until(EC.visibility_of_element_located([By.LINK_TEXT,
'Volgende']))
click_icon.click()

网站名为https://www.iens.nl/restaurant+utrecht

提前致谢!

最佳答案

由于每次切换到下一页时自动滚动,webdriver 尝试单击 Next 按钮,但其他一些元素收到单击。您可以使用此解决方案:

while True:
try:
click_icon = WebDriverWait(driver, 5, 0.25).until(EC.visibility_of_element_located([By.LINK_TEXT, 'Volgende']))
click_icon.click()
WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'main:not([style*="margin-top"])')))
except:
break

另一个简单的解决方案(仅当您的目标是到达最后一页时)是在不一直单击 Next 的情况下获取最后一页:

driver.find_elements_by_xpath('//div[@class="pagination"]/ul/li/a')[-2].click()

关于javascript - 使用 Python + Selenium 通过 while 循环点击下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com