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

RoboBrowser调用get_form返回None但select方法可正常定位表单

问题原因分析

你遇到的问题和JavaScript加载无关,是get_form方法的参数规则和select方法不兼容导致的:

  • browser.select 继承自BeautifulSoup的DOM查询方法,支持标准CSS选择器语法,所以你写的类选择器、属性选择器都能正常匹配到表单元素。
  • browser.get_form 是RoboBrowser单独封装的工具方法,它的首个入参不支持CSS选择器,只会精准匹配表单的id属性或name属性的值。你传入的.dark-text是CSS类选择器格式,get_form会直接把它当成普通字符串,查找id/name为.dark-text的表单,你的目标表单没有对应属性,自然返回None。
解决方案

你已经可以用select方法定位到表单标签,直接把标签封装为RoboBrowser的Form对象即可正常操作,示例代码如下:

from robobrowser import RoboBrowser
from robobrowser.forms.form import Form

url = 'https://www.twino.eu/en/login/'
browser = RoboBrowser(parser="html.parser")
browser.open(url)

# 先查询到表单DOM元素
form_tag = browser.select_one("form.dark-text.mt-6")
# 封装为Form对象
login_form = Form(form_tag)

# 后续表单操作和用get_form拿到的对象完全一致
login_form.fields[0].value = "你的登录邮箱"
login_form.fields[1].value = "你的登录密码"
browser.submit_form(login_form)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:00