是的,這是由於cookie浮動底部在底部。 Selenium會將你的按鈕滾動到視圖中,但它沒有意識到它需要將它滾動到cookie浮動div上方。
我建議或者點擊cookie消息上的關閉按鈕,或者從cookie消息後面滾動元素。
要關閉的cookie,你會想點擊關閉,並等待它消失:
編輯:
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
chrome_path = '/Users/username/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']))
link = driver.find_element_by_link_text("Volgende")
link.click()
要從cookie的消息背後滾動元素,它出現這個頁面也有一個浮動頂部標題,所以你實際上不能將它滾動到頁面頂部......你需要從cookie消息後面滾動它。
from selenium import webdriver
chrome_path = '/Users/username/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_path)
driver.get('https://www.iens.nl/restaurant+utrecht')
link = driver.find_element_by_link_text("Volgende")
# Scroll to element as Selenium would
driver.execute_script('arguments[0].scrollIntoView(false);', link)
# Then scroll it up to get it out from behind the message
driver.execute_script('window.scrollBy(0, 200)')
link.click()
編輯:我已經證實了這兩個選項的作用
如果你看看它說的cookie政策消息將接收點擊事件的消息,因爲即使當硒試圖滾動Volgende按鈕進入視圖中,cookie策略消息將浮動在按鈕上,因此它不會被點擊 – Corporalis