如何在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
相关产品推荐
相关产品推荐

