最新版Selenium触发find_element_by_*、executable_path废弃警告原因咨询
Selenium 警告问题解答
警告触发原因
你遇到的两个警告均为Selenium 4.0及以上版本的API规则调整导致:
executable_path弃用警告:Selenium 4.0+不再支持直接向webdriver.Chrome()传入executable_path参数,要求通过Service类封装驱动路径后再传入实例化参数。find_element_by_*系列方法弃用警告:Selenium 4.0+统一了元素定位API,所有find_element_by_*的快捷方法都被标记为废弃,目前仅做临时兼容使用,后续版本会正式移除。你查询到的文档属于旧版Selenium的遗留内容,未同步更新新版API规则,因此和实际运行提示存在差异。
修复后代码示例
首先导入新增依赖:
from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By
修改原有函数逻辑:
def run(driver_path): # 用Service类封装驱动路径 service = Service(executable_path=driver_path) driver = webdriver.Chrome(service=service) driver.get('https://tproger.ru/quiz/real-programmer/') # 使用统一的find_element方法定位元素 button = driver.find_element(By.CLASS_NAME, "quiz_button") button.click() run(driver_path)
修改完成后重新运行即可消除对应警告。
内容的提问来源于stack exchange,提问作者Alexandr
相关产品推荐
相关产品推荐

