Python使用Selenium出现find_elements_by_*弃用警告及新方法报错如何解决
Selenium 4元素定位报错&警告解决方法
出现InvalidArgumentException报错的核心原因是Selenium 4.x版本的find_elements()方法要求同时传入定位方式和定位值两个参数,不能直接传入类名/标签名等字符串。
完整修正步骤
- 首先导入定位类型常量类
By
from selenium.webdriver.common.by import By
- 替换原有的定位写法
你原来的旧写法:
divTag = driver.find_elements_by_class_name('quote')
替换为新写法即可同时消除警告和报错:
divTag = driver.find_elements(By.CLASS_NAME, 'quote')
常用定位方式新旧写法对照表
可根据自己的定位需求替换对应参数:
- 按ID定位:原
find_element_by_id('id值')→ 新find_element(By.ID, 'id值') - 按XPath定位:原
find_elements_by_xpath('xpath表达式')→ 新find_elements(By.XPATH, 'xpath表达式') - 按标签名定位:原
find_elements_by_tag_name('标签名')→ 新find_elements(By.TAG_NAME, '标签名') - 按CSS选择器定位:原
find_elements_by_css_selector('css选择器')→ 新find_elements(By.CSS_SELECTOR, 'css选择器') - 按链接文本定位:原
find_element_by_link_text('链接完整文本')→ 新find_element(By.LINK_TEXT, '链接完整文本')
注意事项
- 查找单个匹配元素时使用
find_element()方法,返回单个元素对象 - 查找所有匹配元素时使用
find_elements()方法,返回元素对象列表,无匹配时返回空列表
内容的提问来源于stack exchange,提问作者Rupal
相关产品推荐
相关产品推荐

