Current section
Files
Jump to
Current section
Files
src/butterbee@page_module@element.erl
-module(butterbee@page_module@element).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/butterbee/page_module/element.gleam").
-export([define/1, perform_action/3]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Define elements for page module using this module.\n"
"\n"
" Example:\n"
"\n"
" ```gleam\n"
" import butterbee/page_module/element\n"
"\n"
" pub fn submit_button(\n"
" driver: WebDriver(state),\n"
" action: fn(_) -> WebDriver(new_state),\n"
" ) {\n"
" element.define(field: by.css(\"button#submit\"))\n"
" |> element.perform_action(driver, action)\n"
" }\n"
" ```\n"
"\n"
" For a more complete example, see the [`page module`](https://hexdocs.pm/butterbee/page-modules) guide.\n"
).
-file("src/butterbee/page_module/element.gleam", 24).
?DOC(" Define an element for a page module.\n").
-spec define(butterbidi@browsing_context@types@locator:locator()) -> butterbidi@browsing_context@types@locator:locator().
define(Locator) ->
Locator.
-file("src/butterbee/page_module/element.gleam", 29).
?DOC(" Perform an action on the defined element.\n").
-spec perform_action(
butterbidi@browsing_context@types@locator:locator(),
butterbee@webdriver:web_driver(any()),
fun((butterbee@webdriver:web_driver(butterbidi@script@types@remote_value:node_remote_value())) -> butterbee@webdriver:web_driver(WVR))
) -> butterbee@webdriver:web_driver(WVR).
perform_action(Locator, Driver, Action) ->
_pipe = butterbee@get:node(Driver, Locator),
Action(_pipe).