You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium无法点击Expedia网站Flights按钮该如何解决

Expedia网站Flights按钮Selenium点击解决方案

原代码失败原因

  • 你使用的find_element_by_class_name属于Selenium旧版语法,4.0及以上版本已经废弃该系列API,现在统一使用find_element(By.定位类型, 定位值)的写法
  • Expedia的Flights按钮没有值为Flights的class属性,使用类名定位本身就无法匹配到目标元素
  • 未添加等待逻辑,页面元素还没加载完成就执行查找操作,会直接报元素不存在错误

可直接运行的正确代码

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

# Selenium4会自动适配对应Chrome版本的驱动,无需手动指定路径;低版本Selenium可保留原executable_path参数
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.expedia.com/")

# 显式等待最多10秒,直到Flights按钮可点击后再执行操作
flights_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//span[text()="Flights"]'))
)
flights_button.click()

其他可选定位方式

你也可以通过按钮的aria-label属性用CSS选择器定位,稳定性和XPath一致:

flights_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, 'a[aria-label="Flights"]'))
)

内容的提问来源于stack exchange,提问作者NikaTheKilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:15:03