Javascript 使用Python+;Selenium使用while循环单击下一页
我试图在一个叫做iens的网站上浏览不同的页面。我使用selenium+python单击“volgende”(在荷兰语中是“next”的意思),但我希望我的程序继续单击next,直到使用while循环的页面不再剩下。所以在这种情况下,我希望我的程序在第23页结束。现在我可以进入第2页,关闭cookie弹出消息,等待它关闭,然后单击“Volgende”按钮 我的代码如下所示:Javascript 使用Python+;Selenium使用while循环单击下一页,javascript,python,selenium,cookies,Javascript,Python,Selenium,Cookies,我试图在一个叫做iens的网站上浏览不同的页面。我使用selenium+python单击“volgende”(在荷兰语中是“next”的意思),但我希望我的程序继续单击next,直到使用while循环的页面不再剩下。所以在这种情况下,我希望我的程序在第23页结束。现在我可以进入第2页,关闭cookie弹出消息,等待它关闭,然后单击“Volgende”按钮 我的代码如下所示: from selenium.webdriver.support.ui import WebDriverWait fro
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()
该网站名为
提前谢谢 由于每次切换到下一页时都会自动滚动,
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()