如何使用 Selenium 在 Stackoverflow 主页中接受 cookie

How to accept cookies within Stackoverflow homepage using Selenium

我正在尝试使用 Selenium 接受 cookie,但找不到接受按钮。我对Selenium不熟悉,也不知道如何调试。例如,如果我尝试接受来自 whosebug.com.

的 cookie

这是我的代码:

driver = webdriver.Chrome("chromedriver")
driver.get("https://whosebug.com")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH, "//button[contains(@class, 'flex--item')]/div[text()='Accept all cookies']"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "flex--item s-btn s-btn__filled js-cookie-settings"))).click()

无论选择什么选项(Xpath 或 CSS),都找不到按钮。如何调试我的 Xpath 或 CSS 选择器?解决方案是什么?

click()元素接受所有cookies'你需要诱导WebDriverWait for the and you can use either of the following :

  • 使用 XPATHnormalize-space():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[normalize-space()='Accept all cookies']"))).click()
    
  • 使用 XPATHcontains():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[contains(., 'Accept all cookies')]"))).click()
    
  • 注意:您必须添加以下导入:

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