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

使用Python点击网页按钮后获取返回动态值的问题咨询

解决方法

你的代码存在3个核心逻辑错误,修正后即可正常拿到生成的CPF值:

  • 两个函数逻辑完全割裂,open_browser里的浏览器操作结果没有传递,get_cpf反而用requests.get重新请求了原始未点击的页面,自然拿不到生成后的值
  • CPF生成后是填充在input标签的value属性里,不是标签的文本内容,用.text取值肯定返回空
  • 原按钮查找方法find_element_by_class不支持匹配多类名,调用方式本身也不符合Selenium的API规范,点击后也没有预留渲染等待时间

修正后可运行代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

url = "https://www.4devs.net.br/gerador-cpf"
# 共用同一个浏览器实例
driver = webdriver.Chrome("/home/willi/Documents/chromedriver")

def get_cpf():
    driver.get(url)
    # 用css选择器匹配多类名按钮,点击生成
    driver.find_element(By.CSS_SELECTOR, '.btn.m-1.btn-primary.btn-sm').click()
    # 等待1秒确保CPF渲染完成
    time.sleep(1)
    # 直接定位input元素,取value属性值
    cpf = driver.find_element(By.ID, '__BVID__61').get_attribute('value')
    print("The value is: " + cpf)
    # 用完关闭浏览器
    driver.quit()

get_cpf()

改动说明

  1. 全程使用同一个Selenium浏览器实例操作,不再额外用requests请求页面,避免拿到初始状态数据
  2. 改用CSS选择器匹配按钮的多类名,符合Selenium的元素定位规范
  3. 点击后增加短暂等待,确保CPF已经生成填充到输入框中
  4. 直接读取input元素的value属性拿到CPF值,不需要额外引入BeautifulSoup做解析,简化逻辑
  5. 操作完成后主动关闭浏览器进程,避免残留进程占用资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:24:03