Открыть заполненную форму в рубине - PullRequest
0 голосов
/ 22 февраля 2019

Я использую механизировать , чтобы заполнить форму, но я хочу просмотреть ее на веб-странице перед отправкой.Цель - открыть браузер с предварительно заполненной формой.

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 или аналогичного метода.Есть ли способ добиться этого (с помощью механизации или других драгоценных камней)?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Как уже упоминалось в комментариях, попробуйте 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

Для получения дополнительных инструкций см. Документацию

0 голосов
/ 23 февраля 2019

Это не сработает, потому что установка полей формы даже не обновляет DOM.

Если вы хотите просмотреть данные формы, вы можете проверить form.request_data

...