{"record":{"id":"8dfd95fffb09aba6","repo":"karatelabs/karate","slug":"unknown-window-operation-operation","errorCode":null,"errorMessage":"unknown window operation: {operation}","messagePattern":"unknown window operation: (.+?)","errorType":"exception","errorClass":"DriverException","httpStatus":null,"severity":"error","filePath":"karate-core/src/main/java/io/karatelabs/driver/Driver.java","lineNumber":571,"sourceCode":"            switchFrame((String) null);\n        } else if (target instanceof Number n) {\n            switchFrame(n.intValue());\n        } else {\n            switchFrame(target.toString());\n        }\n    }\n\n    /**\n     * Window management. Dispatches to maximize(), minimize(), fullscreen().\n     */\n    @Override\n    default void window(String operation) {\n        switch (operation) {\n            case \"maximize\" -> maximize();\n            case \"minimize\" -> minimize();\n            case \"fullscreen\" -> fullscreen();\n            case \"normal\" -> setDimensions(Map.of(\"windowState\", \"normal\"));\n            default -> throw new DriverException(\"unknown window operation: \" + operation);\n        }\n    }\n\n    /**\n     * Tab switching. Dispatches to {@link #switchPage(int)} or {@link #switchPage(String)}.\n     */\n    @Override\n    default void tab(Object target) {\n        if (target instanceof Number n) {\n            switchPage(n.intValue());\n        } else {\n            switchPage(target.toString());\n        }\n    }\n\n    // ========== Navigation ==========\n\n    /**","sourceCodeStart":553,"sourceCodeEnd":589,"githubUrl":"https://github.com/karatelabs/karate/blob/a22eb90246d958d15a47bf436693d0121ad2812d/karate-core/src/main/java/io/karatelabs/driver/Driver.java#L553-L589","documentation":"Driver.window(String) dispatches a named window operation to maximize/minimize/fullscreen/normal. Any other string throws this DriverException listing the unknown operation. The set of operations is intentionally closed so invalid operation names fail loudly rather than silently doing nothing.","triggerScenarios":"Calling driver.window(\"resize\"), driver.window(\"Maximize\") (wrong case), driver.window(\"fullScreen\"), or passing a variable holding an unexpected value.","commonSituations":"Case-sensitivity mistakes; developers guessing operation names not in the enum-like set; scripts ported from other automation tools with different window API verbs; for arbitrary size changes, window operations are the wrong API (use setDimensions).","solutions":["Use one of: 'maximize', 'minimize', 'fullscreen', 'normal' (exact lowercase spelling)","For resizing to specific dimensions call driver.setDimensions({ width: ..., height: ... }) instead of window()","If the operation name comes from config, validate it against the four allowed values first"],"exampleFix":"// before\ndriver.window(\"Resize\");\n// after\ndriver.setDimensions(Map.of(\"width\", 1024, \"height\", 768)); // or driver.window(\"maximize\");","handlingStrategy":"validation","validationCode":"java.util.Set<String> ops = java.util.Set.of(\"maximize\",\"minimize\",\"fullscreen\",\"normal\");\nif (!ops.contains(operation)) throw new IllegalArgumentException(\"unknown window op: \" + operation);","typeGuard":"boolean isWindowOp(String op) { return java.util.Set.of(\"maximize\",\"minimize\",\"fullscreen\",\"normal\").contains(op); }","tryCatchPattern":"try { driver.window(op); } catch (DriverException e) { if (e.getMessage().startsWith(\"unknown window operation\")) { /* use setDimensions instead */ } else throw e; }","preventionTips":["Only pass the four documented lowercase operation names","Use setDimensions for sizing instead of window()","Centralize window operation names in constants"],"tags":["ui","driver","window","invalid-enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"a22eb90246d958d15a47bf436693d0121ad2812d","analyzedAt":"2026-09-12T09:01:00.220Z","contentChangedAt":"2026-09-12T09:01:00.220Z","schemaVersion":2},"datasetVersion":"2026-09-16T19:17:19.609Z"}