Current section
Files
Jump to
Current section
Files
src/butterbee@webdriver.erl
-module(butterbee@webdriver).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/butterbee/webdriver.gleam").
-export([new/0, with_context/2, with_config/2, with_state/2, map_state/2, with_socket/2, get_socket/1, get_context/1, get_config/1, get_state/1, do/2]).
-export_type([web_driver/1, empty/0]).
-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(" The webdriver module contains the WebDriver type and functions to create and configure webdriver sessions.\n").
-type web_driver(VGU) :: {web_driver,
gleam@option:option(butterbee@internal@socket:web_driver_socket()),
gleam@option:option(butterbidi@browsing_context@types@browsing_context:browsing_context()),
gleam@option:option(butterbee@config:butterbee_config()),
{ok, VGU} | {error, butterbee@internal@error:butterbee_error()}}.
-type empty() :: empty.
-file("src/butterbee/webdriver.gleam", 29).
-spec new() -> web_driver(empty()).
new() ->
{web_driver, none, none, none, {ok, empty}}.
-file("src/butterbee/webdriver.gleam", 33).
-spec with_context(
web_driver(VGW),
butterbidi@browsing_context@types@browsing_context:browsing_context()
) -> web_driver(VGW).
with_context(Webdriver, Context) ->
{web_driver,
erlang:element(2, Webdriver),
{some, Context},
erlang:element(4, Webdriver),
erlang:element(5, Webdriver)}.
-file("src/butterbee/webdriver.gleam", 40).
-spec with_config(web_driver(VGZ), butterbee@config:butterbee_config()) -> web_driver(VGZ).
with_config(Webdriver, Config) ->
{web_driver,
erlang:element(2, Webdriver),
erlang:element(3, Webdriver),
{some, Config},
erlang:element(5, Webdriver)}.
-file("src/butterbee/webdriver.gleam", 47).
-spec with_state(
web_driver(any()),
{ok, VHE} | {error, butterbee@internal@error:butterbee_error()}
) -> web_driver(VHE).
with_state(Webdriver, State) ->
{web_driver,
erlang:element(2, Webdriver),
erlang:element(3, Webdriver),
erlang:element(4, Webdriver),
State}.
-file("src/butterbee/webdriver.gleam", 54).
-spec map_state(
{ok, VHI} | {error, butterbee@internal@error:butterbee_error()},
web_driver(any())
) -> web_driver(VHI).
map_state(State, Webdriver) ->
{web_driver,
erlang:element(2, Webdriver),
erlang:element(3, Webdriver),
erlang:element(4, Webdriver),
State}.
-file("src/butterbee/webdriver.gleam", 61).
-spec with_socket(
web_driver(VHO),
butterbee@internal@socket:web_driver_socket()
) -> web_driver(VHO).
with_socket(Webdriver, Socket) ->
{web_driver,
{some, Socket},
erlang:element(3, Webdriver),
erlang:element(4, Webdriver),
erlang:element(5, Webdriver)}.
-file("src/butterbee/webdriver.gleam", 68).
-spec get_socket(web_driver(any())) -> {ok,
butterbee@internal@socket:web_driver_socket()} |
{error, butterbee@internal@error:butterbee_error()}.
get_socket(Driver) ->
case erlang:element(2, Driver) of
none ->
{error, driver_does_not_have_socket};
{some, Socket} ->
{ok, Socket}
end.
-file("src/butterbee/webdriver.gleam", 77).
-spec get_context(web_driver(any())) -> {ok,
butterbidi@browsing_context@types@browsing_context:browsing_context()} |
{error, butterbee@internal@error:butterbee_error()}.
get_context(Driver) ->
case erlang:element(3, Driver) of
none ->
{error, driver_does_not_have_context};
{some, Context} ->
{ok, Context}
end.
-file("src/butterbee/webdriver.gleam", 86).
-spec get_config(web_driver(any())) -> {ok, butterbee@config:butterbee_config()} |
{error, butterbee@internal@error:butterbee_error()}.
get_config(Driver) ->
case erlang:element(4, Driver) of
none ->
{error, driver_does_not_have_config};
{some, Config} ->
{ok, Config}
end.
-file("src/butterbee/webdriver.gleam", 95).
-spec get_state(web_driver(VID)) -> {ok, VID} |
{error, butterbee@internal@error:butterbee_error()}.
get_state(Webdriver) ->
erlang:element(5, Webdriver).
-file("src/butterbee/webdriver.gleam", 102).
?DOC(" Perform an action using the webdriver and update the webdriver state\n").
-spec do(web_driver(VIH), fun((web_driver(VIH)) -> web_driver(VIK))) -> web_driver(VIK).
do(Webdriver, Action) ->
Action(Webdriver).