generated from Nosferican/PkgTPL.jl
/
01_Take_Screenshot.jl
28 lines (26 loc) · 943 Bytes
/
01_Take_Screenshot.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Command: Take Screenshot
"""
screenshot(session::Session)::String
screenshot(element::Element)::String
screenshot(source::Union{Session, Element}, sink::Union{AbstractString, IO})
Take Screenshot and optionally saves it.
"""
function screenshot end
function screenshot(session::Session)::String
@unpack addr, id = session
response =
HTTP.get("$addr/session/$id/screenshot", [("Content-Type" => "application/json")])
@assert response.status == 200
JSON3.read(response.body).value
end
function screenshot(element::Element)::String
@unpack addr, id = element.session
response = HTTP.get(
"$addr/session/$id/element/$(element.id)/screenshot",
[("Content-Type" => "application/json")],
)
@assert response.status == 200
JSON3.read(response.body).value
end
screenshot(source::Union{Session, Element}, sink::Union{AbstractString, IO}) =
write(sink, base64decode(source))