硒中的 ElementNotInteractableException(Python)

ElementNotInteractableException in selenium (Python)

我正在尝试抓取此站点:https://www.wagr.com/mens-ranking,在 table 的右下角有一个按钮可以单击到下一页,但是当我尝试时 selenium 一直抛出异常单击它。下面的代码是我用来点击按钮的代码。

next = driver.find_element(By.CSS_SELECTOR,'.next > a:nth-child(1)')
next.click()

这是回溯的屏幕截图:

我不明白为什么这不起作用,如果有任何提示,我将不胜感激。

你需要

  1. 处理 cookie 弹出
  2. 在页面底部向下滚动,以便可以看到该按钮

这是一个工作代码 -

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()

# options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")

chrome_driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install()),
    options=options
)

with chrome_driver as driver:
    driver.implicitly_wait(15)
    driver.get('https://www.wagr.com/mens-ranking')
    time.sleep(3)

    # click cookie popup
    cookie_btn = driver.find_element(By.XPATH, "/html/body/div[2]/div[3]/div/div/div[2]/div[1]/button")
    cookie_btn.click()
    time.sleep(0.3)
    
    # scrolling bottom
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)

    next_btn = driver.find_element(By.CSS_SELECTOR, '.next > a:nth-child(1)')  # li.next
    # next_btn = driver.find_element(By.XPATH, "//li[@class='next']")

    print("found and click next", next_btn.tag_name)
    next_btn.click()

    time.sleep(2)
    driver.quit()