在 ruby 中打开填写表格的页面

Open filled-form page in ruby

我正在使用 mechanize 填写表格,但我想在提交前在网页上进行审核。目标是打开带有预填表单的浏览器。

require 'mechanize'

mechanize = Mechanize.new
page = mechanize.get('https://www.linuxtoday.com/contribute.html')

form = page.form_with :name => 'upload'
form.sub_name = "mbb"
form.email = "mbb@mbb.com"
form.author_name = "Mr Potatohead"
form.title = "Mr Potatohead writes Ruby"
form.link = "https://potato.potato"
form.body = "More text"

`open #{page.uri}`

调用操作系统打开网站当然是空形式。我没有看到 page.open 或类似的方法可用。有没有办法实现这一点(使用机械化或其他宝石)?

这行不通,因为设置表单字段甚至不会更新 DOM。

如果您想查看表单数据,您可以检查 form.request_data

正如其他人在评论中提到的,请尝试使用 selenium,您需要安装 chrome 或 firefox 驱动程序,这里是 chrome 的示例以帮助您入门:

require 'selenium-webdriver'
require 'pry' # optional

driver = Selenium::WebDriver.for :chrome

driver.navigate.to 'https://www.linuxtoday.com/contribute.html'
form = driver.find_element(id: 'upload')
form.find_element(id: 'sub_name').send_keys 'mbb'
form.find_element(id: 'email').send_keys 'mbb@mbb.com'

binding.pry # or sleep 60 
driver.quit

更多说明see documentation