使用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
相关产品推荐
相关产品推荐

