Skip to content

Commit d78fd28

Browse files
committed
fix(selenium): add mapping for browser log levels to selenium
1 parent e4b5cf4 commit d78fd28

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

src/browsers/selenium/logging.js

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default (SeleniumBrowser) => {
22
return class extends SeleniumBrowser {
3-
setLogLevel(level, types) {
3+
setLogLevel(levels, types) {
44
/* Seems only Chrome really supports browser logging
55
* - https://github.com/mozilla/geckodriver/issues/284
66
*/
@@ -14,16 +14,40 @@ export default (SeleniumBrowser) => {
1414
}
1515

1616
// flush the remote logs on every call to webpage
17-
this.hook('webpage:property', () => this.browser.flushLogs())
17+
this.hook('webpage:property', () => this.flushLogs())
1818

1919
this.hook('selenium:build:before', (builder) => {
2020
const logging = SeleniumBrowser.webdriver.logging
2121

22+
const levelMap = {
23+
error: logging.Level.SEVERE,
24+
warning: logging.Level.WARNING,
25+
log: logging.Level.INFO,
26+
info: logging.Level.FINEST,
27+
debug: logging.Level.DEBUG
28+
}
29+
30+
if (!Array.isArray(levels)) {
31+
levels = [levels]
32+
}
33+
34+
let level
35+
for (const key in levelMap) {
36+
if (levels.includes(key)) {
37+
level = levelMap[key]
38+
break
39+
}
40+
}
41+
42+
if (!types) {
43+
types = [logging.Type.BROWSER]
44+
}
45+
2246
const prefs = new logging.Preferences()
2347

2448
for (const key in logging.Type) {
2549
const type = logging.Type[key]
26-
if (!types || types.includes(type)) {
50+
if (types.includes(type)) {
2751
prefs.setLevel(type, level || 0)
2852
}
2953
}

0 commit comments

Comments
 (0)