|
44 | 44 | import org.openqa.selenium.WebDriverException;
|
45 | 45 | import org.openqa.selenium.firefox.internal.ProfilesIni;
|
46 | 46 | import org.openqa.selenium.logging.LoggingPreferences;
|
47 |
| -import org.openqa.selenium.remote.BrowserType; |
48 | 47 | import org.openqa.selenium.remote.DesiredCapabilities;
|
49 | 48 |
|
50 | 49 | import java.io.File;
|
@@ -88,10 +87,9 @@ public class FirefoxOptions {
|
88 | 87 | private Map<String, Boolean> booleanPrefs = new HashMap<>();
|
89 | 88 | private Map<String, Integer> intPrefs = new HashMap<>();
|
90 | 89 | private Map<String, String> stringPrefs = new HashMap<>();
|
91 |
| - private Level logLevel = null; |
| 90 | + private FirefoxDriverLogLevel logLevel = null; |
92 | 91 | private boolean legacy;
|
93 | 92 | private DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
|
94 |
| - private boolean headless; |
95 | 93 |
|
96 | 94 | private void amend(Map<String, Object> map) throws IOException {
|
97 | 95 | if (map.containsKey("binary")) {
|
@@ -400,7 +398,31 @@ public FirefoxOptions addPreference(String key, String value) {
|
400 | 398 | return this;
|
401 | 399 | }
|
402 | 400 |
|
| 401 | + private Map<Level, FirefoxDriverLogLevel> logLevelToGeckoLevelMap |
| 402 | + = new ImmutableMap.Builder<Level, FirefoxDriverLogLevel>() |
| 403 | + .put(Level.ALL, FirefoxDriverLogLevel.TRACE) |
| 404 | + .put(Level.FINEST, FirefoxDriverLogLevel.TRACE) |
| 405 | + .put(Level.FINER, FirefoxDriverLogLevel.TRACE) |
| 406 | + .put(Level.FINE, FirefoxDriverLogLevel.DEBUG) |
| 407 | + .put(Level.CONFIG, FirefoxDriverLogLevel.CONFIG) |
| 408 | + .put(Level.INFO, FirefoxDriverLogLevel.INFO) |
| 409 | + .put(Level.WARNING, FirefoxDriverLogLevel.WARN) |
| 410 | + .put(Level.SEVERE, FirefoxDriverLogLevel.ERROR) |
| 411 | + .put(Level.OFF, FirefoxDriverLogLevel.FATAL) |
| 412 | + .build(); |
| 413 | + |
| 414 | + /** |
| 415 | + * @deprecated Use {@link #setLogLevel(FirefoxDriverLogLevel)} |
| 416 | + */ |
| 417 | + @Deprecated |
403 | 418 | public FirefoxOptions setLogLevel(Level logLevel) {
|
| 419 | + // levels defined by GeckoDriver |
| 420 | + // https://github.com/mozilla/geckodriver#log-object |
| 421 | + this.logLevel = logLevelToGeckoLevelMap.getOrDefault(logLevel, FirefoxDriverLogLevel.DEBUG); |
| 422 | + return this; |
| 423 | + } |
| 424 | + |
| 425 | + public FirefoxOptions setLogLevel(FirefoxDriverLogLevel logLevel) { |
404 | 426 | this.logLevel = logLevel;
|
405 | 427 | return this;
|
406 | 428 | }
|
@@ -605,43 +627,14 @@ public Map<String, Object> toJson() throws IOException {
|
605 | 627 | }
|
606 | 628 |
|
607 | 629 | if (logLevel != null) {
|
608 |
| - options.put("log", ImmutableMap.of("level", logLevelToGeckoLevel())); |
| 630 | + options.put("log", ImmutableMap.of("level", logLevel)); |
609 | 631 | }
|
610 | 632 |
|
611 | 633 | options.put("args", args);
|
612 | 634 |
|
613 | 635 | return options.build();
|
614 | 636 | }
|
615 | 637 |
|
616 |
| - private String logLevelToGeckoLevel() { |
617 |
| - // levels defined by GeckoDriver |
618 |
| - // https://github.com/mozilla/geckodriver#log-object |
619 |
| - if (logLevel.intValue() < Level.FINE.intValue()) { |
620 |
| - return "trace"; |
621 |
| - } |
622 |
| - if (logLevel == Level.FINE) { |
623 |
| - return "debug"; |
624 |
| - } |
625 |
| - if (logLevel == Level.CONFIG) { |
626 |
| - return "config"; |
627 |
| - } |
628 |
| - if (logLevel == Level.INFO) { |
629 |
| - return "info"; |
630 |
| - } |
631 |
| - if (logLevel == Level.WARNING) { |
632 |
| - return "warn"; |
633 |
| - } |
634 |
| - if (logLevel == Level.SEVERE) { |
635 |
| - return "error"; |
636 |
| - } |
637 |
| - if (logLevel == Level.OFF) { |
638 |
| - return "fatal"; |
639 |
| - } |
640 |
| - |
641 |
| - // something else? ¯\_(ツ)_/¯ |
642 |
| - return "debug"; |
643 |
| - } |
644 |
| - |
645 | 638 | @Override
|
646 | 639 | public String toString() {
|
647 | 640 | return "{" +
|
|
0 commit comments