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

如何在Selenium Python中正确使用find_elements()方法?

使用find_elements()操作Mercury Tours单选按钮的正确方式

针对你在Mercury Tours预订页面使用find_elements()操作单选按钮时遇到的问题,以下是代码错误修正和方法说明:

1. 行程类型(单程单选按钮)的错误修正

你的第一段代码存在两个问题:

  • find_elements()返回的是WebElement对象列表,不是Select类实例,因此没有select_by_index方法
  • 列表元素的访问用[],方法调用才用()

正确代码:

# 获取所有tripType对应的单选按钮
radiotripType = driver.find_elements(By.NAME, 'tripType') 
# 索引1对应"单程"单选按钮,直接调用click()点击
radiotripType[1].click() 

2. 服务等级(头等舱单选按钮)的错误修正

第二段代码有三个问题:

  • 服务等级单选按钮的name属性是serviceClass,不是serveClass(拼写错误)
  • find_elements()返回列表,不能直接调用click()方法
  • click()方法不接受参数,无法通过传入"First"来定位元素

如果要定位“头等舱”,可以通过两种方式实现:

方法一:通过value属性匹配

radioCategory = driver.find_elements(By.NAME, 'serviceClass')
# 遍历列表找到value为"First"的元素并点击
for element in radioCategory:
    if element.get_attribute('value') == 'First':
        element.click()
        break

方法二:通过索引定位

radioCategory = driver.find_elements(By.NAME, 'serviceClass')
# 索引2对应"头等舱"单选按钮
radioCategory[2].click()

关于find_elements()的使用要点

  • find_elements()始终返回WebElement列表,即使只有一个匹配元素
  • 可以通过遍历列表、索引访问、结合元素属性筛选的方式定位目标元素
  • 对于单选按钮这类元素,找到目标WebElement后直接调用click()即可完成选中操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:39:51