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

Python Selenium网页爬取代码运行报错:NameError: name 'By' is not defined

问题解决:NameError: name 'By' is not defined

问题原因

代码里用By.ID定位元素,但没从Selenium库导入By类,Python找不到这个名称,所以抛出NameError。

修正后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By  # 新增导入By类
import os

os.environ['PATH'] += "C:\\Users\\czoca\\PycharmProjects\\pythonProject4\\chromedriver.exe"

driver = webdriver.Chrome()
driver.get("https://www.teintes.fr/p/recapitulatif.html")
driver.implicitly_wait(10)
myelement1 = driver.find_element(By.ID, "Autoriser")
myelement = driver.find_element(By.ID, "Carens III")
myelement1.click()
myelement.click()

也可以直接在初始导入时包含By:

from selenium import webdriver, By  # 直接导入By
import os

os.environ['PATH'] += "C:\\Users\\czoca\\PycharmProjects\\pythonProject4\\chromedriver.exe"

driver = webdriver.Chrome()
driver.get("https://www.teintes.fr/p/recapitulatif.html")
driver.implicitly_wait(10)
myelement1 = driver.find_element(By.ID, "Autoriser")
myelement = driver.find_element(By.ID, "Carens III")
myelement1.click()
myelement.click()

补充说明

By是Selenium里指定元素定位策略的类,像By.CLASS_NAME、By.XPATH、By.NAME这些常用定位方式,使用前都得确保导入了By类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:05:18