создайте post запрос с помощью полтергейста и капибары


Я перехожу от капибары, поддерживаемой драйвером стойки по умолчанию, к капибаре, поддерживаемой полтергейстом.

По неприятным причинам мне нужно манипулировать данными сеанса перед загрузкой страницы. Но я не мог понять, как управлять сеансом непосредственно с помощью драйвера стойки, поэтому я

Capybara.current_session.driver.submit :post, "/current_search", {:session => :data }
К сожалению, объект Poltergeist driver не имеет метода submit, как это было с драйвером стойки.

Есть три возможности:

  • Как отправить сообщение запрос с помощью poltergeist / phantomjs? (реализовать это кажется проще всего)
  • Как я могу манипулировать данными сеанса непосредственно с помощью poltergeist / phantomjs?
  • я могу реструктурировать код так, чтобы больше не было необходимости напрямую манипулировать данными сеанса. Это отнимет много времени и будет иметь низкий приоритет.
PS: из-за того, что мы находимся на Ruby 1.8, мы застряли на Poltergeist v1.0.2
1 2

1 ответ:

Идея capybara заключается в том, чтобы протестировать взаимодействие с пользователем, поэтому вы можете сделать запрос POST таким же образом, как это сделал бы пользователь.

В вашем случае это будет что-то вроде:

visit '/search'
fill_in '.search-box', :with => "search query"
click_on "Submit"
Есть ли какая-то причина не делать этого таким образом?