Current section
Files
Jump to
Current section
Files
src/butterbee@commands@browsing_context.erl
-module(butterbee@commands@browsing_context).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/butterbee/commands/browsing_context.gleam").
-export([get_tree/2, locate_nodes/2, navigate/2]).
-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(
" ## [Browsing context commands](https://w3c.github.io/webdriver-bidi/#module-browsing-context-commands) \n"
"\n"
" The browsing context commands module contains commands found in the browsing context section of the\n"
" webdriver bidi protocol. Butterbee uses these internally to create the high level\n"
" API. But you can use these commands directly if you want something specific.\n"
).
-file("src/butterbee/commands/browsing_context.gleam", 39).
?DOC(
" Returns a tree of all descendent navigables including the given \n"
" parent itself, or all top-level contexts when no parent is provided.\n"
" \n"
" ## Example\n"
"\n"
" ```gleam\n"
" let browsing_tree =\n"
" browsing_context.get_tree(driver.socket, get_tree.default())\n"
" )\n"
" ```\n"
"\n"
" [w3c](https://w3c.github.io/webdriver-bidi/#command-browsingContext-getTree)\n"
).
-spec get_tree(
butterbee@webdriver:web_driver(any()),
butterbidi@browsing_context@commands@get_tree:get_tree_parameters()
) -> {ok, butterbidi@browsing_context@commands@get_tree:get_tree_result()} |
{error, butterbee@internal@error:butterbee_error()}.
get_tree(Driver, Params) ->
Command = {browsing_context_command, get_tree},
Request = butterbidi@definition:command_to_json(
{command,
butterbee@internal@id:from_unix(),
Command,
[{<<"params"/utf8>>,
butterbidi@browsing_context@commands@get_tree:get_tree_parameters_to_json(
Params
)}]}
),
gleam@result:'try'(
(butterbee@webdriver:get_socket(Driver)),
fun(Socket) ->
gleam@result:'try'(
(butterbee@internal@socket:send_request(
Socket,
Request,
Command
)),
fun(Response) -> case erlang:element(4, Response) of
{browsing_context_result, Result} ->
case Result of
{get_tree_result, Result@1} ->
{ok, Result@1};
_ ->
{error, unexpected_get_tree_result_type}
end;
_ ->
{error, unexpected_browsing_context_result_type}
end end
)
end
).
-file("src/butterbee/commands/browsing_context.gleam", 77).
?DOC(
" Returns a list of all nodes matching the specified locator.\n"
" \n"
" ## Example\n"
"\n"
" ```gleam\n"
" let nodes = locate_nodes(\n"
" driver.socket, \n"
" locate_nodes.new(driver.context, locator)\n"
" )\n"
" ```\n"
"\n"
" [w3c](https://w3c.github.io/webdriver-bidi/#command-browsingContext-locateNodes)\n"
).
-spec locate_nodes(
butterbee@webdriver:web_driver(any()),
butterbidi@browsing_context@commands@locate_nodes:locate_nodes_parameters()
) -> {ok,
butterbidi@browsing_context@commands@locate_nodes:locate_nodes_result()} |
{error, butterbee@internal@error:butterbee_error()}.
locate_nodes(Driver, Params) ->
Command = {browsing_context_command, locate_nodes},
Request = butterbidi@definition:command_to_json(
{command,
butterbee@internal@id:from_unix(),
Command,
[{<<"params"/utf8>>,
butterbidi@browsing_context@commands@locate_nodes:locate_nodes_parameters_to_json(
Params
)}]}
),
gleam@result:'try'(
(butterbee@webdriver:get_socket(Driver)),
fun(Socket) ->
gleam@result:'try'(
(butterbee@internal@socket:send_request(
Socket,
Request,
Command
)),
fun(Response) -> case erlang:element(4, Response) of
{browsing_context_result, Result} ->
case Result of
{locate_nodes_result, Result@1} ->
{ok, Result@1};
_ ->
{error,
unexpected_browsing_context_result_type}
end;
_ ->
{error, unexpected_browsing_context_result_type}
end end
)
end
).
-file("src/butterbee/commands/browsing_context.gleam", 116).
?DOC(
" Navigates a navigable to the given URL.\n"
" \n"
" ## Example\n"
"\n"
" ```gleam\n"
" let driver =\n"
" browsing_context.navigate(\n"
" driver.socket, navigate.default(driver.context, url))\n"
" ```\n"
"\n"
" [w3c](https://w3c.github.io/webdriver-bidi/#command-browsingContext-navigate)\n"
).
-spec navigate(
butterbee@webdriver:web_driver(any()),
butterbidi@browsing_context@commands@navigate:navigate_parameters()
) -> {ok, butterbidi@browsing_context@commands@navigate:navigate_result()} |
{error, butterbee@internal@error:butterbee_error()}.
navigate(Driver, Params) ->
Command = {browsing_context_command, navigate},
_ = case erlang:element(4, Params) of
none ->
[];
{some, State} ->
[{<<"wait"/utf8>>,
gleam@json:nullable(
{some,
butterbidi@browsing_context@types@readiness_state:readiness_state_to_string(
State
)},
fun gleam@json:string/1
)}]
end,
Request = butterbidi@definition:command_to_json(
{command,
butterbee@internal@id:from_unix(),
Command,
[{<<"params"/utf8>>,
butterbidi@browsing_context@commands@navigate:navigate_parameters_to_json(
Params
)}]}
),
gleam@result:'try'(
(butterbee@webdriver:get_socket(Driver)),
fun(Socket) ->
gleam@result:'try'(
(butterbee@internal@socket:send_request(
Socket,
Request,
Command
)),
fun(Response) -> case erlang:element(4, Response) of
{browsing_context_result, Result} ->
case Result of
{navigate_result, Result@1} ->
{ok, Result@1};
_ ->
{error,
unexpected_browsing_context_result_type}
end;
_ ->
{error, unexpected_browsing_context_result_type}
end end
)
end
).