2016-06-22 5 views
0

Мне было интересно, есть ли способ или библиотека, которая может заполнить текстовое поле на веб-сайте, к которому подключается Ruby. Я работаю на веб-соскоб приложение, которое тянет таблицу с сайта ... Вот текстовое поле, я имею в виду:Заполните текстовую рамку на веб-сайте Ruby

The text box

Есть простой способ сделать это или библиотека I может использовать?

(Все разные страницы данных находятся в одном URL-адресе, поэтому я не могу использовать другой URL-адрес для этого).

Заранее благодарен!

+1

Ваш вопрос просит нас рекомендовать решения, которые не соответствуют теме. «Вопросы, предлагающие нам рекомендовать или находить книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс вне сайта, не соответствуют теме« Переполнение стека », поскольку они склонны привлекать упрямые ответы и спам. Вместо этого [описать проблему] (http: //meta.stackoverflow.com/questions/254393) и что было сделано до сих пор, чтобы решить эту проблему ». –

ответ

2

Вы, вероятно, следует попробовать mechanize драгоценный камень, который позволяет это сделать:

require 'mechanize' 

agent = Mechanize.new 
page = agent.get('http://google.com/') 

form = page.forms.first 
form['field_name_1'] = input1 
form['field_name_2'] = input2 

page = agent.submit(form, form.buttons.first) 
puts page 

Это очень проста в использовании и очень интуитивный. Вот documentation с moreexamples.

Или вы можете использовать инструменты разработчика по вашему выбору в вашем любимом браузере для записи и проверки HTTP-запроса после отправки этой формы, а затем использовать стандартный HTTP Client для прямого запроса на сайт (действие формы) со всем запросом POST данные подготовлены (вместо того, чтобы чувствовать форму).

Если вы собираетесь отказаться от большого количества данных, я бы предложил использовать что-то вроде em-http-request, чтобы сделать это асинхронно.

-1

Вам необходимо использовать пробный камень, а некоторые - для ввода форм. Как "capybara"

Документация, немного исчерпывающими, но это мощный инструмент