-module(butterbee@page_module@select_element). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/butterbee/page_module/select_element.gleam"). -export([define/1, perform_action/3, option/1, selected_text/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( " Define elements for page module using this module.\n" "\n" " Example:\n" "\n" " ```gleam\n" " import butterbee/page_module/select_element\n" "\n" " pub fn pokemon_dropdown(\n" " driver: WebDriver(state),\n" " action: fn(_) -> WebDriver(new_state),\n" " ) {\n" " select_element.define(field: by.css(\"select#pokemon\"))\n" " |> select_element.perform_action(driver, action)\n" " }\n" "\n" " // Select an option by its visible text\n" " driver\n" " |> form_page.pokemon_dropdown(select_element.option(\"Charmander\"))\n" "\n" " // Get the currently selected option's text\n" " driver\n" " |> form_page.pokemon_dropdown(select_element.selected_text())\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/select_element.gleam", 34). -spec define(butterbidi@browsing_context@types@locator:locator()) -> butterbidi@browsing_context@types@locator:locator(). define(Locator) -> Locator. -file("src/butterbee/page_module/select_element.gleam", 38). -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(WWL)) ) -> butterbee@webdriver:web_driver(WWL). perform_action(Locator, Driver, Action) -> _pipe = butterbee@get:node(Driver, Locator), Action(_pipe). -file("src/butterbee/page_module/select_element.gleam", 47). -spec option(binary()) -> fun((butterbee@webdriver:web_driver(butterbidi@script@types@remote_value:node_remote_value())) -> butterbee@webdriver:web_driver(butterbidi@script@types@remote_value:node_remote_value())). option(Option) -> Function = <<"function setSelectByInnerText(innerTextValue) { if (!this || this.tagName !== 'SELECT') { throw new TypeError('Function must be called on a