16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/headless_browser_tool/tools/select_tool.rb', line 16
def execute(value:, dropdown_selector:)
dropdown = browser.find(dropdown_selector)
options = dropdown.all("option").map.with_index do |opt, index|
{
selector: "#{dropdown_selector} option:nth-of-type(#{index + 1})",
value: opt.value,
text: opt.text,
selected: opt.selected?
}
end
browser.select(value, dropdown_selector)
selected_option = dropdown.all("option").find(&:selected?)
{
dropdown_selector: dropdown_selector,
selected_value: selected_option&.value,
selected_text: selected_option&.text,
options: options,
status: "selected"
}
end
|