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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/headless_browser_tool/tools/fill_in_tool.rb', line 16
def execute(field:, value:)
field_info = begin
element = begin
browser.find_element("input[name='#{field}']")
rescue StandardError
nil
end
element ||= begin
browser.find_element("input##{field}")
rescue StandardError
nil
end
element ||= begin
browser.find_element("textarea[name='#{field}']")
rescue StandardError
nil
end
element ||= begin
browser.find_element("textarea##{field}")
rescue StandardError
nil
end
if element
{
type: element[:attributes]["type"] || "text",
name: element[:attributes]["name"],
id: element[:attributes]["id"],
placeholder: element[:attributes]["placeholder"]
}.compact
else
{}
end
rescue StandardError
{}
end
browser.fill_in(field, value)
{
field: field,
value: value,
field_info: field_info,
status: "success"
}
end
|