generated from Nosferican/PkgTPL.jl
/
03_Capabilities.jl
79 lines (76 loc) · 2.58 KB
/
03_Capabilities.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
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# TODO
# Add browser specific options
"""
Capabilities(browserName::AbstractString;
browserVersion::AbstractString = "",
platformName::AbstractString = "",
acceptInsecureCerts::Union{Nothing, Bool} = nothing,
pageLoadStrategy::AbstractString = "",
proxy::Union{Nothing, Proxy} = nothing,
setWindowRect::Union{Nothing, Bool} = nothing,
timeouts::Timeouts = Timeouts(),
strictFileInteractability::Union{Nothing, Bool} = nothing,
unhandledPromptBehavior::AbstractString = "dismiss and notify"
)::Capabilities
According to [W3C](https://www.w3.org/TR/webdriver/#dfn-extension-capability).
# Example
```jldoctest
julia> capabilities = Capabilities("chrome")
Remote WebDriver Capabilities
browserName: chrome
```
"""
struct Capabilities{
aIC<:Union{Nothing,Bool},
P<:Union{Nothing,Proxy},
sWR<:Union{Nothing,Bool},
sFI<:Union{Nothing,Bool},
}
browserName::String
browserVersion::String
platformName::String
acceptInsecureCerts::aIC
pageLoadStrategy::String
proxy::P
setWindowRect::sWR
timeouts::Timeouts
strictFileInteractability::sFI
unhandledPromptBehavior::String
function Capabilities(
browserName::AbstractString;
browserVersion::AbstractString = "",
platformName::AbstractString = "",
acceptInsecureCerts::Union{Nothing,Bool} = nothing,
pageLoadStrategy::AbstractString = "",
proxy::Union{Nothing,Proxy} = nothing,
setWindowRect::Union{Nothing,Bool} = nothing,
timeouts::Timeouts = Timeouts(),
strictFileInteractability::Union{Nothing,Bool} = nothing,
unhandledPromptBehavior::AbstractString = "dismiss and notify",
)
new{
typeof(acceptInsecureCerts),
typeof(proxy),
typeof(setWindowRect),
typeof(strictFileInteractability),
}(
browserName,
browserVersion,
platformName,
acceptInsecureCerts,
pageLoadStrategy,
proxy,
setWindowRect,
timeouts,
strictFileInteractability,
unhandledPromptBehavior,
)
end
end
summary(io::IO, obj::Capabilities) = println(io, "Remote WebDriver Capabilities")
function show(io::IO, obj::Capabilities)
print(io, summary(obj))
println(io, "browserName: $(obj.browserName)")
end
JSON3.StructType(::Type{<:Capabilities}) = JSON3.Struct()
omitempties(::Type{<:Capabilities}) = fieldnames(Capabilities)