如何在 Kayak 航班搜索上使用 Webdriver 和 selenium“接受所有”cookie?

问题描述 投票:0回答:1
python selenium-webdriver cookies
1个回答
0
投票

找到该链接的最简单方法是使用下面的 XPath,

//div[text()='Accept all']

一些反馈,

  1. 根据文档

    警告:不要混合隐式和显式等待。

    换句话说,不要同时使用

    .implicitly_wait()
    WebDriverWait

  2. 根据 Selenium 领导和贡献者的说法,您不应该使用隐式等待。请根据需要使用

    WebDriverWait

  3. 从 Selenium 4.6 开始,添加了 SeleniumManager,它会自动为您下载和配置适当的驱动程序。因此,您不再需要使用 DriverManager 或指定路径等。

  4. 您实际上并未将

    chrome_options
    传递给 Chrome 实例化。

考虑到所有这些,您更新后的代码看起来像

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

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("_tt_enable_cookie=1")
url = "https://www.kayak.co.uk/flights/LON-MXP/2024-06-14/2024-06-16?fs=takeoff=1724,2200__1628,2200;stops=~0&sort=bestflight_a"
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
driver.get(url)

wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[text()='Accept all']"))).click()
© www.soinside.com 2019 - 2024. All rights reserved.