-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcapabilities.go
50 lines (41 loc) · 1.36 KB
/
capabilities.go
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
package selenium
import (
"github.com/tebeka/selenium"
"github.com/tebeka/selenium/chrome"
"github.com/tebeka/selenium/firefox"
"github.com/tebeka/selenium/log"
)
type ChromeCapabilities chrome.Capabilities
type Capabilities struct {
d *selenium.Capabilities
}
func NewCapabilities() *Capabilities {
capabilities := selenium.Capabilities{}
return &Capabilities{d: &capabilities}
}
// AddChrome adds Chrome-specific capabilities.
func (c *Capabilities) AddChrome(f chrome.Capabilities) {
(*c.d)[chrome.CapabilitiesKey] = f
(*c.d)[chrome.DeprecatedCapabilitiesKey] = f
}
// AddFirefox adds Firefox-specific capabilities.
func (c *Capabilities) AddFirefox(f firefox.Capabilities) {
(*c.d)[firefox.CapabilitiesKey] = f
}
// AddProxy adds proxy configuration to the capabilities.
func (c *Capabilities) AddProxy(p selenium.Proxy) {
(*c.d)["proxy"] = p
}
// AddLogging adds logging configuration to the capabilities.
func (c *Capabilities) AddLogging(l log.Capabilities) {
(*c.d)[log.CapabilitiesKey] = l
}
// SetLogLevel sets the logging level of a component. It is a shortcut for
// passing a log.Capabilities instance to AddLogging.
func (c *Capabilities) SetLogLevel(typ log.Type, level log.Level) {
if _, ok := (*c.d)[log.CapabilitiesKey]; !ok {
(*c.d)[log.CapabilitiesKey] = make(log.Capabilities)
}
m := (*c.d)[log.CapabilitiesKey].(log.Capabilities)
m[typ] = level
}