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

Selenium中使用find_element遍历公司列表点击链接报错求助

问题修复方案

错误原因

  1. 列表遍历逻辑错误:你在循环中用str(company)把整个公司列表转换成了字符串,没有取到当前循环对应的单个公司名称,导致定位的文本完全不符合要求。
  2. 冗余且错误的函数调用:format(str(company))完全没必要,且报错提示'str' object is not callable说明你的代码环境中format被意外赋值成了字符串(而非Python内置的格式化函数),这直接导致了调用失败。

修复代码

方式一:修正原有索引遍历

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from time import sleep  # 补上sleep的导入,否则会报错

company = ['Apple Inc','Microsoft','Tesla']

url = "你的目标网址"

driver = webdriver.Chrome(r"C:\Users\Downloads\chromedriver_win32\chromedriver.exe")
driver.get(url)

drop = Select(driver.find_element(By.ID,'ctl00_Cont_uxProjectTTIDropDownList'))
drop.select_by_visible_text ('2022 Q4 - Projects') 

sleep(1)

for i in range (len(company)):
    # 直接取列表中的单个公司名称,无需额外转换
    driver.find_element(By.LINK_TEXT, company[i]).click()
    # 若点击后页面跳转,需回到原页面继续操作的话,添加下面一行
    # driver.back()

方式二:更Pythonic的直接遍历元素

这种写法更简洁,避免索引操作可能带来的错误:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from time import sleep

company = ['Apple Inc','Microsoft','Tesla']

url = "你的目标网址"

driver = webdriver.Chrome(r"C:\Users\Downloads\chromedriver_win32\chromedriver.exe")
driver.get(url)

drop = Select(driver.find_element(By.ID,'ctl00_Cont_uxProjectTTIDropDownList'))
drop.select_by_visible_text ('2022 Q4 - Projects') 

sleep(1)

# 直接遍历列表中的每个公司名称
for comp in company:
    driver.find_element(By.LINK_TEXT, comp).click()
    # 按需添加页面跳转后的处理逻辑

额外优化建议

  • 替换sleep为显式等待:sleep是固定时长等待,容易因网络或页面加载慢导致元素定位失败,建议用Selenium的显式等待替代:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 替换sleep(1),等待第一个公司链接可点击
WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.LINK_TEXT, company[0]))
)
  • 处理页面跳转:如果点击公司链接后跳转到新页面,需要切换回原页面或重新加载列表页面,才能继续操作下一个公司,可添加driver.back()或重新获取页面的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:01:10