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

如何不使用JavaScript通过Ferrum::Browser提交表单

不用JavaScript提交Ferrum表单的方法

针对你遇到的button标签提交按钮无法聚焦点击的问题,这里有几种不用JavaScript的解决方案:

1. 使用Ferrum的submit方法直接提交表单

Ferrum提供了直接操作表单的原生方法,无需操作提交按钮,直接定位表单元素后调用submit即可:

browser = Ferrum::Browser.new
form = browser.at_css("form[name='login_form']")
form.submit

这个方法会模拟浏览器原生的表单提交逻辑,和点击提交按钮的效果完全一致,且不依赖JavaScript。

2. 排查按钮不可聚焦的原因(若想通过点击按钮提交)

如果坚持要通过点击按钮完成提交,先确认按钮无法聚焦的根源:

  • 检查按钮是否被设置了disabled属性
  • 确认按钮是否被CSS隐藏(比如display: none、visibility: hidden)
  • 查看按钮是否被pointer-events: none的父元素包裹

如果是上述原因导致的,先解除限制再调用click方法:

button = browser.at_css("button[type='submit']")
# 若按钮被禁用,移除disabled属性
button.set_attribute("disabled", nil)
button.click

3. 直接构造POST请求提交表单

如果界面交互类方法都不适用,还可以直接模拟表单的POST请求,绕过浏览器界面操作:

browser = Ferrum::Browser.new
# 根据表单实际需要的字段调整form参数,即使按钮无额外字段也要对应传入
browser.post("/login", form: { login: "" })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:54:51