Python version of the Playwright testing and automation library.
This report summarizes scanner evidence for microsoft/playwright-python, a Python project with 15,028 GitHub stars. SynthScan examined 114,798 lines of code across 370 source files, recording 2929 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 27.5 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2584 finding(s).
Are imports declared and package/API names verified? 197 finding(s).
Are wrappers, guards, and repeated structures necessary? 2433 finding(s).
Which changes need focused human review? 2929 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2929 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 192 | def _download_and_extract_local_driver( | CODE |
| LOW⚡ | tests/server.py | 277 | def send_on_web_socket_connection(self, data: bytes) -> None: | CODE |
| LOW⚡ | tests/server.py | 280 | def once_web_socket_connection( | CODE |
| LOW | tests/utils.py | 27 | def chromium_version_less_than(a: str, b: str) -> bool: | CODE |
| LOW | tests/test_reference_count_async.py | 44 | def handle_network_response_received(event: Any) -> None: | CODE |
| LOW | tests/test_reference_count_async.py | 90 | async def test_tracing_should_not_leak_protocol_callbacks(browser_name: str) -> None: | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 21 | async def test_select_option_should_select_single_option( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 30 | async def test_select_option_should_select_single_option_by_value( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 39 | async def test_select_option_should_select_single_option_by_label( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 48 | async def test_select_option_should_select_single_option_by_empty_label( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 156 | async def test_select_option_should_respect_event_bubbling( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 165 | async def test_select_option_should_throw_when_element_is_not_a__select_( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 174 | async def test_select_option_should_return_on_no_matched_values( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 183 | async def test_select_option_should_return_an_array_of_matched_values( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 192 | async def test_select_option_should_return_an_array_of_one_element_when_multiple_is_not_set( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 200 | async def test_select_option_should_return_on_no_values( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 208 | async def test_select_option_should_not_allow_null_items( | CODE |
| LOW⚡ | tests/async/test_page_select_option.py | 218 | async def test_select_option_should_unselect_with_null( | CODE |
| LOW | tests/async/test_page_select_option.py | 64 | async def test_select_option_should_select_single_option_by_handle( | CODE |
| LOW | tests/async/test_page_select_option.py | 75 | async def test_select_option_should_select_single_option_by_index( | CODE |
| LOW | tests/async/test_page_select_option.py | 92 | async def test_select_option_should_select_only_first_option( | CODE |
| LOW | tests/async/test_page_select_option.py | 101 | async def test_select_option_should_not_throw_when_select_causes_navigation( | CODE |
| LOW | tests/async/test_page_select_option.py | 114 | async def test_select_option_should_select_multiple_options( | CODE |
| LOW | tests/async/test_page_select_option.py | 124 | async def test_select_option_should_select_multiple_options_with_attributes( | CODE |
| LOW | tests/async/test_page_select_option.py | 139 | async def test_select_option_should_select_option_with_empty_value( | CODE |
| LOW | tests/async/test_page_select_option.py | 232 | async def test_select_option_should_deselect_all_options_when_passed_no_values_for_a_multiple_select( | CODE |
| LOW | tests/async/test_page_select_option.py | 245 | async def test_select_option_should_deselect_all_options_when_passed_no_values_for_a_select_without_multiple( | CODE |
| LOW | tests/async/test_page_select_option.py | 257 | async def test_select_option_should_work_when_re_defining_top_level_event_class( | CODE |
| LOW | tests/async/test_page_select_option.py | 267 | async def test_select_options_should_fall_back_to_selecting_by_label( | CODE |
| LOW | tests/async/test_fill.py | 25 | async def test_is_enabled_for_non_editable_button(page: Page) -> None: | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 200 | async def test_should_support_viewport_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 210 | async def test_should_support_device_scale_factor_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 217 | async def test_should_support_user_agent_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 267 | async def test_should_support_offline_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 276 | async def test_should_support_has_touch_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 286 | async def test_should_work_in_persistent_context( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 311 | async def test_should_support_timezone_id_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 321 | async def test_should_support_contrast_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 331 | async def test_should_support_locale_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 338 | async def test_should_support_geolocation_and_permission_option( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 420 | async def test_should_have_default_url_when_launching_browser( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 429 | async def test_should_throw_if_page_argument_is_passed( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 438 | async def test_should_fire_close_event_for_a_persistent_context( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 448 | async def test_should_support_reduced_motion( | CODE |
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 455 | async def test_should_support_har_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 67 | async def test_context_cookies_should_work( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 96 | async def test_context_add_cookies_should_work( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 134 | async def test_context_clear_cookies_should_work( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 153 | async def test_should_not_block_third_party_cookies( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 230 | async def test_should_support_bypass_csp_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 240 | async def test_should_support_javascript_enabled_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 254 | async def test_should_support_http_credentials_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 298 | async def test_should_support_color_scheme_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 354 | async def test_should_support_ignore_https_errors_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 364 | async def test_should_support_extra_http_headers_option( | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 376 | async def test_should_accept_user_data_dir( | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 57 | async def test_should_fall_back_async_delayed( | CODE |
| LOW⚡ | tests/async/test_browsercontext_request_fallback.py | 97 | async def test_should_fall_back_after_exception( | CODE |
| LOW⚡ | tests/async/test_browsercontext_request_fallback.py | 113 | async def test_should_amend_http_headers( | CODE |
| LOW | tests/async/test_browsercontext_request_fallback.py | 137 | async def test_should_delete_header_with_undefined_value( | CODE |
| 2107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/async/test_jshandle.py | 129 | undefined: undefined, | STRING |
| HIGH⚡ | tests/async/test_jshandle.py | 130 | null: null, | STRING |
| HIGH⚡ | tests/async/test_navigation.py | 837 | await page.evaluate("window.open('about:blank', null, 'noopener') && 1") | CODE |
| HIGH⚡ | tests/async/test_navigation.py | 862 | "url => window.open(url, null, 'noopener') && 1", server.EMPTY_PAGE | CODE |
| HIGH⚡ | tests/async/test_navigation.py | 202 | window.addEventListener('beforeunload', () => history.replaceState(null, 'initial', window.location.href), false | STRING |
| HIGH | tests/async/test_input.py | 332 | e.addEventListener('input', () => events.push('input')); | STRING |
| HIGH | tests/async/test_input.py | 333 | e.addEventListener('change', () => events.push('change')); | STRING |
| HIGH | tests/async/test_console.py | 152 | if (!frame.contentDocument || frame.contentDocument.readyState !== 'complete') | STRING |
| HIGH | tests/async/test_fetch_global.py | 483 | ({"foo": None}, '{"foo": null}'), | CODE |
| HIGH⚡ | tests/async/test_page_evaluate.py | 187 | '({ a, b }) => Object.is(a, null) && Object.is(b, "foo")', | CODE |
| HIGH⚡ | tests/async/test_route_web_socket.py | 53 | window.ws.addEventListener('open', () => window.log.push('open')); | STRING |
| HIGH⚡ | tests/async/test_route_web_socket.py | 54 | window.ws.addEventListener('close', event => window.log.push(`close code=${event.code} reason=${event.reason} wasCle | STRING |
| HIGH⚡ | tests/async/test_route_web_socket.py | 55 | window.ws.addEventListener('error', event => window.log.push(`error`)); | STRING |
| HIGH⚡ | tests/async/test_route_web_socket.py | 64 | window.log.push(`message: data=${data} origin=${event.origin} lastEventId=${event.lastEventId}`); | STRING |
| HIGH | tests/async/test_route_web_socket.py | 125 | window.ws1.addEventListener('message', event => window.log.push(`ws1:${event.data}`)); | STRING |
| HIGH | tests/async/test_route_web_socket.py | 127 | window.ws2.addEventListener('message', event => window.log.push(`ws2:${event.data}`)); | STRING |
| HIGH | tests/async/test_route_web_socket.py | 371 | window.ws.addEventListener('message', event => window.log.push(event.data)); | STRING |
| HIGH | tests/async/test_emulation_focus.py | 72 | document.onclick = () => window.click_count = (window.click_count || 0) + 1; | CODE |
| HIGH | tests/async/test_emulation_focus.py | 119 | element.onfocus = element.onblur = (e) => self._events.push(e.type); | CODE |
| HIGH⚡ | tests/async/test_page.py | 1370 | events.push({ | STRING |
| HIGH⚡ | tests/async/test_page.py | 1377 | events.push({ | STRING |
| HIGH⚡ | tests/async/test_page.py | 1384 | events.push({ | STRING |
| HIGH⚡ | tests/async/test_page.py | 1420 | events.push({ | STRING |
| HIGH⚡ | tests/async/test_page.py | 1427 | events.push({ | STRING |
| HIGH⚡ | tests/async/test_page.py | 1434 | events.push({ | STRING |
| HIGH | tests/async/test_page.py | 1327 | events.push({ | STRING |
| HIGH | tests/async/test_page.py | 1334 | events.push({ | STRING |
| HIGH | tests/async/test_locators.py | 766 | events.push({ | CODE |
| HIGH | tests/async/test_locators.py | 773 | events.push({ | CODE |
| HIGH | tests/async/test_locators.py | 1237 | window.__dropInfo = null; | CODE |
| HIGH | tests/async/test_locators.py | 1245 | files.push({ name: file.name, type: file.type, size: file.size, text: await file.text() }); | CODE |
| HIGH | tests/async/test_click.py | 1130 | window.result.push([event.clientX, event.clientY]); | STRING |
| HIGH | tests/async/test_page_route.py | 226 | request.send(null); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 123 | document.addEventListener('keydown', e => events.push(e.type)); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 124 | document.addEventListener('keyup', e => events.push(e.type)); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 125 | document.addEventListener('keypress', e => events.push(e.type)); | STRING |
| HIGH⚡ | tests/async/test_keyboard.py | 126 | document.addEventListener('input', e => events.push(e.type)); | STRING |
| HIGH | tests/async/test_keyboard.py | 40 | lastEvent.keyIdentifier = 'keyIdentifier' in e && e.keyIdentifier; | STRING |
| HIGH | tests/async/test_keyboard.py | 485 | if (event.key === 'a' && (event.metaKey || event.ctrlKey)) | STRING |
| HIGH | tests/async/test_headful.py | 157 | """() => window.outerWidth === 500 && window.outerHeight === 450""" | STRING |
| HIGH | tests/async/test_tap.py | 234 | target.addEventListener(event, () => events.push(event), false); | STRING |
| HIGH | tests/async/test_browsertype_connect.py | 343 | e.addEventListener('input', () => events.push('input')); | STRING |
| HIGH | tests/async/test_browsertype_connect.py | 344 | e.addEventListener('change', () => events.push('change')); | STRING |
| HIGH⚡ | tests/async/test_popup.py | 379 | '() => window.__popup = window.open(undefined, null, "noopener")' | CODE |
| HIGH⚡ | tests/async/test_popup.py | 394 | '() => window.__popup = window.open("about:blank", null, "noopener")' | CODE |
| HIGH⚡ | tests/async/test_popup.py | 408 | 'url => window.__popup = window.open(url, null, "noopener")', | CODE |
| HIGH | tests/async/test_popup.py | 196 | if (win.innerWidth === 600 && win.innerHeight === 300) { | STRING |
| HIGH | tests/async/test_webmcp.py | 46 | const modelContext = document.modelContext || navigator.modelContext; | CODE |
| HIGH | tests/sync/test_console.py | 157 | if (!frame.contentDocument || frame.contentDocument.readyState !== 'complete') | STRING |
| HIGH⚡ | tests/sync/test_fetch_global.py | 335 | assert response.text() == '{"foo": null}' | CODE |
| HIGH⚡ | tests/sync/test_route_web_socket.py | 50 | window.ws.addEventListener('open', () => window.log.push('open')); | STRING |
| HIGH⚡ | tests/sync/test_route_web_socket.py | 51 | window.ws.addEventListener('close', event => window.log.push(`close code=${event.code} reason=${event.reason} wasCle | STRING |
| HIGH⚡ | tests/sync/test_route_web_socket.py | 52 | window.ws.addEventListener('error', event => window.log.push(`error`)); | STRING |
| HIGH⚡ | tests/sync/test_route_web_socket.py | 61 | window.log.push(`message: data=${data} origin=${event.origin} lastEventId=${event.lastEventId}`); | STRING |
| HIGH | tests/sync/test_route_web_socket.py | 119 | window.ws1.addEventListener('message', event => window.log.push(`ws1:${event.data}`)); | STRING |
| HIGH | tests/sync/test_route_web_socket.py | 121 | window.ws2.addEventListener('message', event => window.log.push(`ws2:${event.data}`)); | STRING |
| HIGH | tests/sync/test_route_web_socket.py | 366 | window.ws.addEventListener('message', event => window.log.push(event.data)); | STRING |
| HIGH | tests/sync/test_locators.py | 1028 | window.__dropInfo = null; | CODE |
| HIGH | tests/sync/test_locators.py | 1036 | files.push({ name: file.name, type: file.type, size: file.size, text: await file.text() }); | CODE |
| HIGH | tests/sync/test_tap.py | 110 | target.addEventListener(event, () => events.push(event), false); | STRING |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | setup.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/conftest.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/server.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/test_installation.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/utils.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/test_reference_count_async.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_page_select_option.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_fill.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_defaultbrowsercontext.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_request_fallback.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_add_init_script.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_jshandle.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_credentials.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_screenshot.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_resource_timing.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_extension.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/conftest.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_navigation.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_download.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_clearcookies.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_frames.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_input.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_request_fulfill.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_page_event_pageerror.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_pdf.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_proxy.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_selectors_get_by.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_tracing.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_selectors_text.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_console.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_route.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_element_handle.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_expect_misc.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_fetch_global.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_cookies.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_page_evaluate.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_client_certificates.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_geolocation.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_websocket.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_selector_generator.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_route_web_socket.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_emulation_focus.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_fetch_browser_context.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_storage_state.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_page.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_request_continue.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_cdp_session.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_video.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_locators.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_asyncio.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_focus.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsercontext_request_intercept.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_browsertype_connect_cdp.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_context_manager.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_ignore_https_errors.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_selectors_misc.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_wait_for_function.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_page_network_response.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| LOW | tests/async/test_click.py | 1 | # Copyright (c) Microsoft Corporation. | COMMENT |
| 197 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/server.py | 299 | except Exception: | CODE |
| HIGH | tests/server.py | 332 | except Exception: | CODE |
| HIGH | tests/async/test_click.py | 86 | except Error: | CODE |
| HIGH | tests/async/test_browsercontext.py | 248 | except Error: | CODE |
| HIGH | tests/async/test_browsercontext.py | 279 | except Error: | CODE |
| HIGH | tests/async/test_browsercontext.py | 324 | except Error: | CODE |
| HIGH | tests/async/test_browsercontext.py | 339 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 162 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 345 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 184 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 205 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 379 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 402 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 424 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 446 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 471 | except Error: | CODE |
| HIGH | tests/async/test_unroute_behavior.py | 499 | except Error: | CODE |
| HIGH | tests/sync/test_page_add_locator_handler.py | 212 | except Exception: | CODE |
| HIGH | playwright/_impl/_screencast.py | 65 | except (Error, OSError): | CODE |
| HIGH | playwright/_impl/_helper.py | 400 | except Exception: | CODE |
| HIGH | playwright/_impl/_locator.py | 372 | except (json.JSONDecodeError, ValueError): | CODE |
| HIGH | playwright/_impl/_browser_context.py | 282 | except Exception: | CODE |
| HIGH | playwright/_impl/_page.py | 1486 | except Error: | CODE |
| HIGH | playwright/_impl/_page.py | 319 | except Error: | CODE |
| HIGH | playwright/_impl/_waiter.py | 71 | except Error: | CODE |
| HIGH | playwright/_impl/_network.py | 724 | except Exception: | CODE |
| HIGH | playwright/_impl/_network.py | 764 | except Exception: | CODE |
| HIGH | playwright/_impl/_connection.py | 467 | except (Error, OSError): | CODE |
| HIGH | scripts/documentation_provider.py | 451 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/async/test_defaultbrowsercontext.py | 0 | () => { document.cookie = 'username=john doe'; return document.cookie; } | STRING |
| HIGH | tests/async/test_browsercontext_cookies.py | 0 | () => { document.cookie = 'username=john doe'; return document.cookie; } | STRING |
| HIGH | tests/async/test_headful.py | 0 | () => { document.cookie = 'username=john doe'; return document.cookie; } | STRING |
| HIGH | tests/async/test_defaultbrowsercontext.py | 0 | src => { let fulfill; const promise = new promise(x => fulfill = x); const iframe = document.createelement('iframe'); do | STRING |
| HIGH | tests/async/test_headful.py | 0 | src => { let fulfill; const promise = new promise(x => fulfill = x); const iframe = document.createelement('iframe'); do | STRING |
| HIGH | tests/async/test_browsercontext_add_cookies.py | 0 | src => { let fulfill; const promise = new promise(x => fulfill = x); const iframe = document.createelement('iframe'); do | STRING |
| HIGH | tests/async/test_browsercontext_request_fallback.py | 0 | async url => { const data = await fetch(url, { headers: { foo: 'a', bar: 'b', } }); return data.text(); } | STRING |
| HIGH | tests/async/test_page_request_fallback.py | 0 | async url => { const data = await fetch(url, { headers: { foo: 'a', bar: 'b', } }); return data.text(); } | STRING |
| HIGH | tests/sync/test_browsercontext_request_fallback.py | 0 | async url => { const data = await fetch(url, { headers: { foo: 'a', bar: 'b', } }); return data.text(); } | STRING |
| HIGH | tests/sync/test_page_request_fallback.py | 0 | async url => { const data = await fetch(url, { headers: { foo: 'a', bar: 'b', } }); return data.text(); } | STRING |
| HIGH | tests/async/test_element_handle.py | 0 | <button disabled>button1</button> <button>button2</button> <div>div</div> | STRING |
| HIGH | tests/async/test_locators.py | 0 | <button disabled>button1</button> <button>button2</button> <div>div</div> | STRING |
| HIGH | tests/sync/test_element_handle.py | 0 | <button disabled>button1</button> <button>button2</button> <div>div</div> | STRING |
| HIGH | tests/sync/test_locators.py | 0 | <button disabled>button1</button> <button>button2</button> <div>div</div> | STRING |
| HIGH | tests/async/test_click.py | 0 | <input type='radio'>one</input> <input id='two' type='radio'>two</input> <input type='radio'>three</input> | STRING |
| HIGH | tests/async/test_check.py | 0 | <input type='radio'>one</input> <input id='two' type='radio'>two</input> <input type='radio'>three</input> | STRING |
| HIGH | tests/sync/test_check.py | 0 | <input type='radio'>one</input> <input id='two' type='radio'>two</input> <input type='radio'>three</input> | STRING |
| HIGH | tests/async/test_click.py | 0 | <div role='checkbox' id='checkbox'>checkbox</div> <script> checkbox.addeventlistener('click', () => checkbox.setattribut | STRING |
| HIGH | tests/async/test_check.py | 0 | <div role='checkbox' id='checkbox'>checkbox</div> <script> checkbox.addeventlistener('click', () => checkbox.setattribut | STRING |
| HIGH | tests/sync/test_check.py | 0 | <div role='checkbox' id='checkbox'>checkbox</div> <script> checkbox.addeventlistener('click', () => checkbox.setattribut | STRING |
| HIGH | playwright/__init__.py | 0 | python package `playwright` is a python library to automate chromium, firefox and webkit with a single api. playwright i | STRING |
| HIGH | playwright/async_api/__init__.py | 0 | python package `playwright` is a python library to automate chromium, firefox and webkit with a single api. playwright i | STRING |
| HIGH | playwright/sync_api/__init__.py | 0 | python package `playwright` is a python library to automate chromium, firefox and webkit with a single api. playwright i | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/async/conftest.py | 15 | CODE | |
| LOW | tests/async/test_navigation.py | 23 | CODE | |
| LOW | tests/async/test_download.py | 18 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 15 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 17 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 17 | CODE | |
| LOW | tests/async/test_browsercontext_proxy.py | 21 | CODE | |
| LOW | tests/async/test_browsercontext_route.py | 17 | CODE | |
| LOW | tests/async/test_browsercontext_route.py | 17 | CODE | |
| LOW | tests/async/test_fetch_browser_context.py | 20 | CODE | |
| LOW | tests/async/test_request_continue.py | 16 | CODE | |
| LOW | tests/async/test_worker.py | 20 | CODE | |
| LOW | tests/async/test_proxy.py | 15 | CODE | |
| LOW | tests/async/test_proxy.py | 17 | CODE | |
| LOW | tests/async/test_proxy.py | 21 | CODE | |
| LOW | playwright/_impl/_credentials.py | 21 | CODE | |
| LOW | playwright/_impl/_clock.py | 19 | CODE | |
| LOW | playwright/_impl/_screencast.py | 31 | CODE | |
| LOW | playwright/_impl/_helper.py | 55 | CODE | |
| LOW | playwright/_impl/_helper.py | 56 | CODE | |
| LOW | playwright/_impl/_helper.py | 56 | CODE | |
| LOW | playwright/_impl/_helper.py | 56 | CODE | |
| LOW | playwright/_impl/_helper.py | 56 | CODE | |
| LOW | playwright/_impl/_locator.py | 59 | CODE | |
| LOW | playwright/_impl/_locator.py | 60 | CODE | |
| LOW | playwright/_impl/_locator.py | 61 | CODE | |
| LOW | playwright/_impl/_fetch.py | 63 | CODE | |
| LOW | playwright/_impl/_download.py | 22 | CODE | |
| LOW | playwright/_impl/_console_message.py | 23 | CODE | |
| LOW | playwright/_impl/_console_message.py | 24 | CODE | |
| LOW | playwright/_impl/_webmcp.py | 22 | CODE | |
| LOW | playwright/_impl/_browser_context.py | 89 | CODE | |
| LOW | playwright/_impl/_page.py | 111 | CODE | |
| LOW | playwright/_impl/_page.py | 112 | CODE | |
| LOW | playwright/_impl/_page.py | 113 | CODE | |
| LOW | playwright/_impl/_page.py | 113 | CODE | |
| LOW | playwright/_impl/_video.py | 22 | CODE | |
| LOW | playwright/_impl/_browser.py | 57 | CODE | |
| LOW | playwright/_impl/_set_input_files_helpers.py | 36 | CODE | |
| LOW | playwright/_impl/_network.py | 69 | CODE | |
| LOW | playwright/_impl/_network.py | 71 | CODE | |
| LOW | playwright/_impl/_network.py | 72 | CODE | |
| LOW | playwright/_impl/_network.py | 72 | CODE | |
| LOW | playwright/_impl/_browser_type.py | 55 | CODE | |
| LOW | playwright/_impl/_har_router.py | 27 | CODE | |
| LOW | playwright/_impl/_har_router.py | 28 | CODE | |
| LOW | playwright/_impl/_har_router.py | 29 | CODE | |
| LOW | playwright/_impl/_web_storage.py | 20 | CODE | |
| LOW | playwright/_impl/_dialog.py | 22 | CODE | |
| LOW | playwright/_impl/_frame.py | 33 | CODE | |
| LOW | playwright/_impl/_file_chooser.py | 21 | CODE | |
| LOW | playwright/_impl/_file_chooser.py | 22 | CODE | |
| LOW | playwright/_impl/_js_handle.py | 32 | CODE | |
| LOW | playwright/_impl/_async_base.py | 15 | CODE | |
| LOW | playwright/_impl/_element_handle.py | 49 | CODE | |
| LOW | playwright/_impl/_element_handle.py | 50 | CODE | |
| LOW | playwright/_impl/_connection.py | 55 | CODE | |
| LOW | playwright/_impl/_connection.py | 56 | CODE | |
| LOW | playwright/async_api/_generated.py | 75 | CODE | |
| LOW | playwright/async_api/_generated.py | 80 | CODE | |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | playwright/_impl/_tracing.py | 42 | CODE | |
| LOW | playwright/_impl/_locator.py | 1008 | CODE | |
| LOW | playwright/_impl/_locator.py | 157 | CODE | |
| LOW | playwright/_impl/_locator.py | 174 | CODE | |
| LOW | playwright/_impl/_locator.py | 281 | CODE | |
| LOW | playwright/_impl/_locator.py | 445 | CODE | |
| LOW | playwright/_impl/_locator.py | 582 | CODE | |
| LOW | playwright/_impl/_locator.py | 893 | CODE | |
| LOW | playwright/_impl/_fetch.py | 78 | CODE | |
| LOW | playwright/_impl/_fetch.py | 162 | CODE | |
| LOW | playwright/_impl/_fetch.py | 191 | CODE | |
| LOW | playwright/_impl/_fetch.py | 220 | CODE | |
| LOW | playwright/_impl/_fetch.py | 249 | CODE | |
| LOW | playwright/_impl/_fetch.py | 278 | CODE | |
| LOW | playwright/_impl/_fetch.py | 307 | CODE | |
| LOW | playwright/_impl/_fetch.py | 336 | CODE | |
| LOW | playwright/_impl/_fetch.py | 376 | CODE | |
| LOW | playwright/_impl/_page.py | 799 | CODE | |
| LOW | playwright/_impl/_page.py | 876 | CODE | |
| LOW | playwright/_impl/_page.py | 893 | CODE | |
| LOW | playwright/_impl/_page.py | 909 | CODE | |
| LOW | playwright/_impl/_page.py | 968 | CODE | |
| LOW | playwright/_impl/_page.py | 1037 | CODE | |
| LOW | playwright/_impl/_page.py | 1051 | CODE | |
| LOW | playwright/_impl/_page.py | 1067 | CODE | |
| LOW | playwright/_impl/_page.py | 1191 | CODE | |
| LOW | playwright/_impl/_browser.py | 132 | CODE | |
| LOW | playwright/_impl/_browser.py | 187 | CODE | |
| LOW | playwright/_impl/_browser_type.py | 76 | CODE | |
| LOW | playwright/_impl/_browser_type.py | 111 | CODE | |
| LOW | playwright/_impl/_frame.py | 567 | CODE | |
| LOW | playwright/_impl/_frame.py | 584 | CODE | |
| LOW | playwright/_impl/_frame.py | 602 | CODE | |
| LOW | playwright/_impl/_frame.py | 620 | CODE | |
| LOW | playwright/_impl/_frame.py | 689 | CODE | |
| LOW | playwright/_impl/_frame.py | 768 | CODE | |
| LOW | playwright/_impl/_frame.py | 782 | CODE | |
| LOW | playwright/_impl/_frame.py | 800 | CODE | |
| LOW | playwright/_impl/_element_handle.py | 130 | CODE | |
| LOW | playwright/_impl/_element_handle.py | 148 | CODE | |
| LOW | playwright/_impl/_element_handle.py | 321 | CODE | |
| LOW | playwright/async_api/_generated.py | 2281 | CODE | |
| LOW | playwright/async_api/_generated.py | 2365 | CODE | |
| LOW | playwright/async_api/_generated.py | 3044 | CODE | |
| LOW | playwright/async_api/_generated.py | 4522 | CODE | |
| LOW | playwright/async_api/_generated.py | 4613 | CODE | |
| LOW | playwright/async_api/_generated.py | 4700 | CODE | |
| LOW | playwright/async_api/_generated.py | 5012 | CODE | |
| LOW | playwright/async_api/_generated.py | 5574 | CODE | |
| LOW | playwright/async_api/_generated.py | 5650 | CODE | |
| LOW | playwright/async_api/_generated.py | 5721 | CODE | |
| LOW | playwright/async_api/_generated.py | 6558 | CODE | |
| LOW | playwright/async_api/_generated.py | 10964 | CODE | |
| LOW | playwright/async_api/_generated.py | 11151 | CODE | |
| LOW | playwright/async_api/_generated.py | 11242 | CODE | |
| LOW | playwright/async_api/_generated.py | 11328 | CODE | |
| LOW | playwright/async_api/_generated.py | 11666 | CODE | |
| LOW | playwright/async_api/_generated.py | 12227 | CODE | |
| LOW | playwright/async_api/_generated.py | 12303 | CODE | |
| LOW | playwright/async_api/_generated.py | 12390 | CODE | |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 220 | except Exception: | CODE |
| LOW | tests/server.py | 299 | except Exception: | CODE |
| LOW | tests/server.py | 332 | except Exception: | CODE |
| LOW⚡ | tests/async/test_browsercontext_request_fallback.py | 105 | except Exception: | CODE |
| LOW | tests/async/test_page_evaluate.py | 263 | except Exception as e: | CODE |
| LOW | tests/async/test_request_continue.py | 109 | except Exception as e: | CODE |
| LOW | tests/async/test_asyncio.py | 154 | except Exception as error: | CODE |
| LOW⚡ | tests/async/test_page_request_fallback.py | 143 | except Exception: | CODE |
| LOW⚡ | tests/sync/test_browsercontext_request_fallback.py | 151 | except Exception: | CODE |
| LOW | tests/sync/conftest.py | 105 | except Exception as e: | CODE |
| MEDIUM | tests/sync/conftest.py | 102 | def body() -> Any: | CODE |
| MEDIUM | tests/sync/test_sync.py | 443 | def error_of(callback): | CODE |
| LOW⚡ | tests/sync/test_sync.py | 390 | except Exception as error: | CODE |
| LOW | tests/sync/test_sync.py | 446 | except Exception as e: | CODE |
| LOW⚡ | tests/sync/test_page_request_fallback.py | 141 | except Exception: | CODE |
| LOW | tests/sync/test_page_add_locator_handler.py | 212 | except Exception: | CODE |
| LOW | utils/linting/check_file_header.py | 59 | except Exception as e: | STRING |
| LOW | playwright/_impl/_helper.py | 264 | except Exception: | CODE |
| LOW | playwright/_impl/_helper.py | 400 | except Exception: | CODE |
| LOW | playwright/_impl/_helper.py | 443 | except Exception as e: | CODE |
| LOW | playwright/_impl/_helper.py | 471 | except Exception as e: | CODE |
| MEDIUM | playwright/_impl/_helper.py | 397 | def _ignore_exception() -> None: | CODE |
| MEDIUM | playwright/_impl/_helper.py | 467 | def _handler() -> None: | CODE |
| LOW | playwright/_impl/_transport.py | 136 | except Exception as exc: | CODE |
| LOW | playwright/_impl/_browser_context.py | 282 | except Exception: | CODE |
| MEDIUM | playwright/_impl/_page.py | 316 | def _update_interceptor_patterns_ignore_exceptions() -> None: | CODE |
| LOW | playwright/_impl/_page.py | 868 | except Exception as e: | CODE |
| LOW | playwright/_impl/_page.py | 1463 | except Exception as e: | CODE |
| LOW | playwright/_impl/_page.py | 1636 | except Exception as e: | CODE |
| LOW | playwright/_impl/_waiter.py | 147 | except Exception as e: | CODE |
| LOW | playwright/_impl/_waiter.py | 155 | except Exception as e: | CODE |
| LOW | playwright/_impl/_browser.py | 245 | except Exception as e: | CODE |
| LOW | playwright/_impl/_network.py | 269 | except Exception: | CODE |
| LOW | playwright/_impl/_network.py | 508 | except Exception as e: | CODE |
| LOW | playwright/_impl/_network.py | 724 | except Exception: | CODE |
| LOW | playwright/_impl/_network.py | 764 | except Exception: | CODE |
| LOW | playwright/_impl/_dialog.py | 60 | except Exception as e: | CODE |
| MEDIUM | playwright/_impl/_dialog.py | 54 | def dismiss(self) -> None: | CODE |
| LOW | playwright/_impl/_js_handle.py | 121 | except Exception as e: | CODE |
| MEDIUM | playwright/_impl/_js_handle.py | 115 | def dispose(self) -> None: | CODE |
| LOW | playwright/_impl/_disposable.py | 35 | except Exception as e: | CODE |
| MEDIUM | playwright/_impl/_disposable.py | 29 | def dispose(self) -> None: | CODE |
| LOW | playwright/_impl/_connection.py | 351 | except Exception as exc: | CODE |
| MEDIUM | playwright/_impl/_connection.py | 575 | print("Error occurred in event listener", file=sys.stderr) | CODE |
| LOW | playwright/_impl/_connection.py | 635 | except Exception as error: | CODE |
| LOW | playwright/_impl/_connection.py | 654 | except Exception as error: | CODE |
| MEDIUM | playwright/_impl/_connection.py | 346 | def init() -> None: | CODE |
| LOW | scripts/documentation_provider.py | 451 | except Exception: | CODE |
| LOW | scripts/build_driver.py | 96 | except Exception as error: # noqa: BLE001 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/server.py | 247 | def set_auth(self, path: str, username: str, password: str) -> None: | CODE |
| LOW | tests/server.py | 250 | def set_csp(self, path: str, value: str) -> None: | CODE |
| LOW⚡ | tests/server.py | 269 | def set_redirect(self, from_: str, to: str) -> None: | CODE |
| LOW | playwright/_impl/_selectors.py | 59 | def set_test_id_attribute(self, attributeName: str) -> None: | CODE |
| LOW | playwright/_impl/_playwright.py | 56 | def _set_selectors(self, selectors: Selectors) -> None: | CODE |
| LOW | playwright/_impl/_helper.py | 311 | def set_default_timeout(self, timeout: Optional[float]) -> None: | CODE |
| LOW | playwright/_impl/_locator.py | 965 | def set_test_id_attribute_name(attribute_name: str) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 305 | def set_default_navigation_timeout(self, timeout: float) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 308 | def _set_default_navigation_timeout_impl(self, timeout: Optional[float]) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 311 | def set_default_timeout(self, timeout: float) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 314 | def _set_default_timeout_impl(self, timeout: Optional[float]) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 383 | async def set_geolocation(self, geolocation: Geolocation = None) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 386 | async def set_extra_http_headers(self, headers: Dict[str, str]) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 391 | async def set_offline(self, offline: bool) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 507 | async def _update_interception_patterns(self) -> None: | CODE |
| LOW⚡ | playwright/_impl/_browser_context.py | 513 | async def _update_web_socket_interception_patterns(self) -> None: | CODE |
| LOW⚡ | playwright/_impl/_page.py | 408 | def set_default_navigation_timeout(self, timeout: float) -> None: | CODE |
| LOW⚡ | playwright/_impl/_page.py | 411 | def set_default_timeout(self, timeout: float) -> None: | CODE |
| LOW⚡ | playwright/_impl/_page.py | 781 | async def _update_interception_patterns(self) -> None: | CODE |
| LOW⚡ | playwright/_impl/_page.py | 789 | async def _update_web_socket_interception_patterns(self) -> None: | CODE |
| LOW | playwright/_impl/_page.py | 316 | async def _update_interceptor_patterns_ignore_exceptions() -> None: | CODE |
| LOW | playwright/_impl/_page.py | 535 | async def set_extra_http_headers(self, headers: Dict[str, str]) -> None: | CODE |
| LOW | playwright/_impl/_page.py | 659 | async def set_viewport_size(self, viewportSize: ViewportSize) -> None: | CODE |
| LOW | playwright/_impl/_browser.py | 110 | def _setup_browser_context(self, context: BrowserContext) -> None: | CODE |
| LOW | playwright/_impl/_network.py | 328 | def _set_response_end_timing(self, response_end_timing: float) -> None: | CODE |
| LOW | playwright/_impl/_web_storage.py | 45 | async def set_item(self, name: str, value: str) -> None: | CODE |
| LOW⚡ | playwright/_impl/_connection.py | 227 | def _set_event_to_subscription_mapping(self, mapping: Dict[str, str]) -> None: | CODE |
| LOW⚡ | playwright/_impl/_connection.py | 230 | def _update_subscription(self, event: str, enabled: bool) -> None: | CODE |
| LOW | playwright/_impl/_connection.py | 389 | def set_is_tracing(self, is_tracing: bool) -> None: | CODE |
| LOW | playwright/async_api/_generated.py | 7233 | def set_test_id_attribute(self, attribute_name: str) -> None: | CODE |
| LOW | playwright/async_api/_generated.py | 9919 | async def set_extra_http_headers(self, headers: typing.Dict[str, str]) -> None: | CODE |
| LOW | playwright/async_api/_generated.py | 10633 | async def set_viewport_size(self, viewport_size: ViewportSize) -> None: | CODE |
| LOW | playwright/async_api/_generated.py | 14098 | async def set_item(self, name: str, value: str) -> None: | CODE |
| LOW | playwright/async_api/_generated.py | 14974 | async def set_extra_http_headers(self, headers: typing.Dict[str, str]) -> None: | CODE |
| LOW | playwright/async_api/_generated.py | 14996 | async def set_offline(self, offline: bool) -> None: | CODE |
| LOW | playwright/async_api/__init__.py | 109 | def set_options(self, timeout: Optional[float] = _unset) -> None: | CODE |
| LOW | playwright/async_api/__init__.py | 209 | __all__ = [ | CODE |
| LOW | playwright/sync_api/_generated.py | 7323 | def set_test_id_attribute(self, attribute_name: str) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 7467 | def set_fixed_time(self, time: typing.Union[float, str, datetime.datetime]) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 9918 | def set_extra_http_headers(self, headers: typing.Dict[str, str]) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 10650 | def set_viewport_size(self, viewport_size: ViewportSize) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 14175 | def set_item(self, name: str, value: str) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 14938 | def set_geolocation(self, geolocation: typing.Optional[Geolocation] = None) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 14961 | def set_extra_http_headers(self, headers: typing.Dict[str, str]) -> None: | CODE |
| LOW | playwright/sync_api/_generated.py | 14983 | def set_offline(self, offline: bool) -> None: | CODE |
| LOW | playwright/sync_api/__init__.py | 109 | def set_options(self, timeout: Optional[float] = _unset) -> None: | CODE |
| LOW | playwright/sync_api/__init__.py | 209 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/sync/test_sync.py | 458 | p._impl_obj._connection._transport._proc.kill() | CODE |
| CRITICAL | playwright/_impl/_browser_context.py | 550 | self._browser._browser_type._playwright.selectors._contexts_for_selectors.remove( | CODE |
| CRITICAL | playwright/_impl/_browser.py | 114 | self._browser_type._playwright.selectors._contexts_for_selectors.add(context) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/async/test_navigation.py | 1114 | CODE | |
| LOW | tests/async/test_tracing.py | 468 | CODE | |
| LOW | tests/async/test_network.py | 683 | CODE | |
| LOW | tests/common/test_events.py | 22 | CODE | |
| LOW | tests/sync/test_tracing.py | 468 | CODE | |
| LOW | playwright/_impl/_glob.py | 19 | CODE | |
| LOW | playwright/_impl/_fetch.py | 376 | CODE | |
| LOW | playwright/_impl/_transport.py | 142 | CODE | |
| LOW | playwright/_impl/_page.py | 298 | CODE | |
| LOW | playwright/_impl/_page.py | 1449 | CODE | |
| LOW | playwright/_impl/_js_handle.py | 218 | CODE | |
| LOW | playwright/_impl/_connection.py | 484 | CODE | |
| LOW | scripts/generate_async_api.py | 38 | CODE | |
| LOW | scripts/generate_api.py | 162 | CODE | |
| LOW | scripts/documentation_provider.py | 52 | CODE | |
| LOW | scripts/documentation_provider.py | 116 | CODE | |
| LOW | scripts/documentation_provider.py | 212 | CODE | |
| LOW | scripts/documentation_provider.py | 304 | CODE | |
| LOW | scripts/documentation_provider.py | 336 | CODE | |
| LOW | scripts/build_driver.py | 87 | CODE | |
| LOW | scripts/generate_sync_api.py | 42 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/async/test_defaultbrowsercontext.py | 193 | "value": "John Doe", | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 85 | "value": "John Doe", | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 108 | "value": "John Doe", | CODE |
| LOW | tests/async/test_defaultbrowsercontext.py | 117 | "value": "John Doe", | CODE |
| LOW | tests/async/test_selectors_get_by.py | 29 | input.setAttribute('placeholder', 'hello my\\nwo"rld'); | STRING |
| LOW | tests/async/test_selectors_get_by.py | 59 | input.setAttribute('placeholder', 'hello my\\nworld'); | STRING |
| LOW | tests/async/test_selectors_get_by.py | 98 | input.setAttribute('placeholder', 'foo >> bar'); | STRING |
| LOW | tests/async/test_browsercontext_cookies.py | 46 | "value": "John Doe", | CODE |
| LOW | tests/async/test_browsercontext_cookies.py | 89 | "value": "John Doe", | CODE |
| LOW | tests/async/test_browsercontext_cookies.py | 184 | "value": "John Doe", | CODE |
| LOW⚡ | tests/async/test_fetch_browser_context.py | 100 | "value": "John Doe", | CODE |
| LOW⚡ | tests/async/test_fetch_browser_context.py | 207 | "value": "John Doe", | CODE |
| LOW | tests/async/test_headful.py | 129 | "value": "John Doe", | CODE |
| LOW | tests/async/test_browsercontext_add_cookies.py | 432 | "value": "John Doe", | CODE |
| LOW⚡ | tests/sync/test_fetch_browser_context.py | 96 | "value": "John Doe", | CODE |
| LOW⚡ | tests/sync/test_fetch_browser_context.py | 194 | "value": "John Doe", | CODE |
| LOW | tests/sync/test_locator_get_by.py | 161 | input.setAttribute('placeholder', 'hello my\\nwo"rld'); | STRING |
| LOW | tests/sync/test_locator_get_by.py | 183 | input.setAttribute('placeholder', 'hello my\\nworld'); | STRING |
| LOW | playwright/_impl/_locator.py | 997 | return get_by_attribute_text_selector("placeholder", text, exact=exact) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/async/test_navigation.py | 901 | def handle_request(request: TestServerRequest) -> None: | CODE |
| LOW | tests/async/test_network.py | 39 | async def handle_request(route: Route, request: Request) -> None: | CODE |
| LOW | tests/async/test_network.py | 73 | async def handle_request( | CODE |
| LOW | tests/async/test_network.py | 691 | def handle_request(request: TestServerRequest) -> None: | CODE |
| LOW | tests/async/test_network.py | 795 | def handle_request(request: Request) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 42 | async def handle_request(route: Route, request: Request) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 141 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 260 | def handle_request(request: Request) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 418 | def handle_request(request: TestServerRequest, hits: List[bool]) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 1001 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_page_route.py | 1040 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_browsertype_connect.py | 304 | async def handle_request(route: Route) -> None: | CODE |
| LOW⚡ | tests/async/test_popup.py | 57 | async def handle_request(route: Route) -> None: | CODE |
| LOW | tests/async/test_popup.py | 222 | def handle_request(route: Route, request: Request, intercepted: List[bool]) -> None: | CODE |
| LOW⚡ | tests/sync/test_network.py | 81 | def handle_request(route: Route) -> None: | CODE |
| LOW | tests/sync/test_browsertype_connect.py | 213 | def handle_request(route: Route) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/async/test_browsercontext.py | 71 | # Create a page in first incognito context. | COMMENT |
| MEDIUM | tests/async/test_browsercontext.py | 84 | # Create a page in second incognito context. | COMMENT |
| MEDIUM | playwright/sync_api/_context_manager.py | 53 | # Create a new fiber for the protocol dispatcher. It will be pumping events | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | playwright/async_api/_generated.py | 19401 | possibly throwing the [\"strict mode violation\" error](https://playwright.dev/python/docs/locators#strictness). | STRING |
| MEDIUM | playwright/sync_api/_generated.py | 19391 | possibly throwing the [\"strict mode violation\" error](https://playwright.dev/python/docs/locators#strictness). | STRING |