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

运行TikTok爬虫报WebDriver无find_element_by_id属性错误如何修复

报错根因
  • 你当前安装的Selenium版本为4.0+,该版本已经完全移除了旧版find_element_by_*系列定位方法,同时废弃了直接传executable_path参数初始化Chrome驱动的写法,这是警告和报错的直接来源。
  • 日志中出现的Bluetooth适配器获取失败提示是Chrome启动时的系统级无关日志,不会影响程序正常运行,无需额外处理。
具体修复方案

1. 修复驱动初始化的弃用警告

首先在代码头部导入Selenium的Service类:

from selenium.webdriver.chrome.service import Service

把原代码第31行的驱动初始化逻辑:

driver = webdriver.Chrome(executable_path=driver_path, options=option)

替换为:

service = Service(executable_path=driver_path)
driver = webdriver.Chrome(service=service, options=option)

2. 修复元素定位的AttributeError报错

首先在代码头部导入By定位类:

from selenium.webdriver.common.by import By

把原代码第47行的元素定位逻辑:

url_field = driver.find_element_by_id('url')

替换为:

url_field = driver.find_element(By.ID, 'url')

注意:如果你的代码里还有其他旧版定位写法,需要全部按统一规则替换,旧写法和新写法对应关系如下:

  • find_element_by_class_name(定位值) → find_element(By.CLASS_NAME, 定位值)
  • find_element_by_xpath(定位值) → find_element(By.XPATH, 定位值)
  • find_element_by_css_selector(定位值) → find_element(By.CSS_SELECTOR, 定位值)
  • find_element_by_name(定位值) → find_element(By.NAME, 定位值)
  • 批量查找多个元素时,只需把find_element替换为find_elements,参数规则不变。

改完之后重新运行程序即可解决上述报错和警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:24:28