在 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
我正在使用 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