Hound.Helpers.Session

Session helpers

Summary

Functions

When you need more than one browser session, use this function switch to another session. If the session doesn’t exist it a new one will be created for you. All further commands will then run in the session you switched to

When running multiple browser sessions, calling this function will switch to the default browser session

Ends the Hound session(s) associated with the current process

Ends a Hound session that is associated with a pid. If you have multiple sessions, all of those sessions are killed

Execute commands in a seperate browser session

Starts a Hound session

Functions

change_session_to(session_name)

When you need more than one browser session, use this function switch to another session. If the session doesn’t exist it a new one will be created for you. All further commands will then run in the session you switched to.

# Pass any name to the session to refer to it later.
change_session_to("random-session")

The name can be an atom or a string. The default session created is called :default.

change_to_default_session()

When running multiple browser sessions, calling this function will switch to the default browser session.

change_to_default_session

# is the same as calling
change_session_to(:default)
end_session()

Ends the Hound session(s) associated with the current process

end_session(pid)

Ends a Hound session that is associated with a pid. If you have multiple sessions, all of those sessions are killed.

For an example, take a look at the documentation for start_session.

in_browser_session(session_name, func)

Execute commands in a seperate browser session.

in_browser_session "another_user" do
  navigate_to "http://example.com"
  click({:id, "announcement"})
end
start_session()

Starts a Hound session.

Use this in your test case’s setup block to start a Hound session for each test case.

defmodule HoundTest do
  use ExUnit.Case
  use Hound.Helpers

  setup do
    Hound.start_session
    :ok
  end

  teardown do
    :ok = Hound.end_session
  end

  test "the truth", meta do
    navigate_to("http://example.com/guestbook.html")

    find_element(:name, "message")
    |> fill_field("Happy Birthday ~!")
    |> submit_element()

    assert page_title() == "Thank you"
  end

end