Packages
pages
0.2.2
4.1.0
4.0.0
3.5.0
3.4.2
3.4.1
3.4.0
3.3.0
3.2.0
3.1.0
3.0.1
3.0.0
2.3.0
2.2.1
2.2.0
2.1.1
2.1.0
2.0.0
1.3.1
1.3.0
1.2.0
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
0.14.0
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Page pattern for interacting with web pages
Current section
Files
Jump to
Current section
Files
lib/pages/driver.ex
defmodule Pages.Driver do
# @related [conn driver](lib/pages/driver/conn.ex)
# @related [live view driver](lib/pages/driver/live_view.ex)
@moduledoc """
Defines types and behaviours that page drivers must implement.
"""
@type t() ::
Pages.Driver.Conn.t()
| Pages.Driver.LiveView.t()
@doc "Click an element within a page."
@callback click(Pages.Driver.t(), binary(), Pages.Css.selector()) ::
Pages.Driver.t() | no_return()
@doc "Submit a form targeted by the given selector."
@callback submit_form(Pages.Driver.t(), Pages.Css.selector()) :: Pages.Driver.t()
@doc "Fills in a form with the attributes and submits it."
@callback submit_form(Pages.Driver.t(), Pages.Css.selector(), atom(), Pages.attrs_t()) ::
Pages.Driver.t()
@doc "Fills in a form with the attributes without submitting it."
@callback update_form(Pages.Driver.t(), Pages.Css.selector(), atom(), Pages.attrs_t()) ::
Pages.Driver.t()
@doc "Navigate directly to a page."
@callback visit(Pages.Driver.t(), Path.t()) :: Pages.Driver.t()
@optional_callbacks [click: 3, submit_form: 2, submit_form: 4, update_form: 4]
end