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

使用Python/Selenium实现网页搜索自动化时遇'not JSON serializable'错误

问题分析与解决

你的代码里有几个明确的错误,是引发报错的核心原因:

  • 元素定位语法错误:driver.find_element(id, "search-term")中的id是未定义变量,Selenium定位元素必须用By类指定定位策略,要改成driver.find_element(By.ID, "search-term")。
  • 缺失必要导入:需要添加from selenium.webdriver.common.by import By,否则By类无法被识别调用。
  • 网址不完整:driver.get("https://www.example")不是有效网址,应改为https://www.example.com(如果是真实网站请替换为正确地址)。

针对你提到的两个疑问补充说明:

  • ChromeDriver路径:如果系统环境变量已配置ChromeDriver路径,webdriver.Chrome()可正常运行;未配置的话需指定路径(如Selenium 4+版本可通过Service类),但这个问题不会引发“not JSON serializable”错误。
  • Cookie弹窗:弹窗会导致元素无法被定位,但报错通常是“元素不可见”或“找不到元素”,和JSON序列化错误无关。

修正后的完整代码:

# Import necessary libraries
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By  # 新增导入
from bs4 import BeautifulSoup
import time

# Set up the webdriver
driver = webdriver.Chrome()

# Navigate to the website and search for the product
driver.get("https://www.example.com")  # 修正网址
search_bar = driver.find_element(By.ID, "search-term")  # 修正定位语法
search_bar.send_keys("test")
search_bar.send_keys(Keys.RETURN)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:00:00