Packages
wallaby
0.20.0
0.31.0
0.30.12
0.30.11
0.30.10
0.30.9
0.30.8
0.30.7
0.30.6
0.30.5
0.30.4
0.30.3
0.30.2
0.30.1
0.30.0
0.29.1
0.29.0
0.28.1
0.28.0
0.27.0
0.26.2
0.26.1
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.0
0.16.1
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.0
0.0.1
Concurrent feature tests for elixir
Current section
Files
Jump to
Current section
Files
lib/wallaby/driver.ex
defmodule Wallaby.Driver do
@moduledoc false
alias Wallaby.{Element, Query, Session}
@type reason :: :not_implemented | :not_supported | any
@type url :: String.t
@type open_dialog_fn :: ((Session.t) -> any)
@type window_dimension :: %{String.t => pos_integer, String.t => pos_integer}
@type on_start_session :: {:ok, Session.t} | {:error, reason}
@doc """
Invoked to start a browser session.
"""
@callback start_session(Keyword.t) :: on_start_session
@doc """
Invoked to stop a browser session.
"""
@callback end_session(Session.t) :: :ok | {:error, reason}
@doc """
Invoked to accept one alert triggered within `open_dialog_fn` and return the alert message.
"""
@callback accept_alert(Session.t, open_dialog_fn) :: {:ok, [String.t]} | {:error, reason}
@doc """
Invoked to accept one confirm triggered within `open_dialog_fn` and return the confirm message.
"""
@callback accept_confirm(Session.t, open_dialog_fn) :: {:ok, [String.t]} | {:error, reason}
@doc """
Invoked to accept all open dialogs.
"""
@callback accept_dialogs(Session.t) :: {:ok, String.t} | {:error, reason}
@doc """
Invoked to accept one prompt triggered within `open_dialog_fn` and return the prompt message.
"""
@callback accept_prompt(Session.t, String.t | nil, open_dialog_fn) ::
{:ok, [String.t]} | {:error, reason}
@doc """
Invoked to retrieve cookies for the given session.
"""
@callback cookies(Session.t) :: {:ok, [%{String.t => String.t}]} | {:error, reason}
@doc """
Invoked to get the current path of the browser's session.
"""
@callback current_path(Session.t) :: {:ok, String.t} | {:error, reason}
@doc """
Invoked to get the current url of the browser's session.
"""
@callback current_url(Session.t) :: {:ok, String.t} | {:error, reason}
@doc """
Invoked to dismiss all open dialogs.
"""
@callback dismiss_dialogs(Session.t) :: {:ok, String.t} | {:error, reason}
@doc """
Invoked to dismiss one confirm triggered within `open_dialog_fn` and return the confirm message.
"""
@callback dismiss_confirm(Session.t, open_dialog_fn) :: {:ok, [String.t]} | {:error, reason}
@doc """
Invoked to dismiss one prompt triggered within `open_dialog_fn` and return the prompt message.
"""
@callback dismiss_prompt(Session.t, open_dialog_fn) :: {:ok, [String.t]} | {:error, reason}
@doc """
Invoked to retrieve the size of the window.
"""
@callback get_window_size(Session.t) :: {:ok, window_dimension} | {:error, reason}
@doc """
Invoked to retrieve the html source of the current page.
"""
@callback page_source(Session.t) :: {:ok, String.t} | {:error, reason}
@doc """
Invoked to retrieve the title of the current page.
"""
@callback page_title(Session.t) :: {:ok, String.t} | {:error, reason}
@doc """
Invoked to set a cookie on a session
"""
@callback set_cookie(Session.t, String.t, String.t) :: {:ok, any} | {:error, reason}
@doc """
Invoked to set the size of the window.
"""
@callback set_window_size(Session.t, pos_integer, pos_integer) :: {:ok, any} | {:error, reason}
@doc """
Invoked to visit a url.
"""
@callback visit(Session.t, url) :: :ok | {:error, reason}
@doc """
Invoked to return the value of an element's attribute.
"""
@callback attribute(Element.t, String.t) :: {:ok, String.t | nil} |
{:error, reason}
@doc """
Invoked to clear an element.
"""
@callback clear(Element.t) :: {:ok, any} | {:error, reason}
@doc """
Invoked to click on an element.
"""
@callback click(Element.t) :: {:ok, any} | {:error, reason}
@doc """
Invoked to check if an element is currently visible.
"""
@callback displayed(Element.t) :: {:ok, boolean} | {:error, reason}
@doc """
Invoked to check if an element is selected (like a checkbox).
"""
@callback selected(Element.t) :: {:ok, boolean} | {:error, reason}
@doc """
Invoked to set the value of the given element.
"""
@callback set_value(Element.t, any) :: {:ok, any} | {:error, reason}
@doc """
Invoked to return the text from the element.
"""
@callback text(Element.t) :: {:ok, any} | {:error, reason}
@doc """
Invoked to find child elements of the given session/element.
"""
@callback find_elements(Session.t | Element.t, Query.compiled) ::
{:ok, [Element.t]} | {:error, reason}
@doc """
Invoked to execute javascript in the browser.
"""
@callback execute_script(Session.t | Element, String.t, [any]) ::
{:ok, any} | {:error, reason}
@doc """
Invoked to send keys to the browser.
"""
@callback send_keys(Session.t | Element.t, String.t | [String.t | atom]) ::
{:ok, any} | {:error, reason}
@doc """
Invoked to take a screenshot of the session/element.
"""
@callback take_screenshot(Session.t | Element.t) :: binary | {:error, reason}
end