Repository Analysis

g1879/DrissionPage

Python based web automation tool. Powerful and elegant.

25.8 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of g1879/DrissionPage, a Python project with 12,407 GitHub stars. SynthScan v2.0 examined 29,011 lines of code across 126 source files, recording 411 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 25.8 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

25.8
Adjusted Score
25.8
Raw Score
100%
Time Factor
2026-08-20
Last Push
12.4K
Stars
Python
Language
29.0K
Lines of Code
126
Files
411
Pattern Hits
2026-08-29
Scan Date
0.57
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 6HIGH 66MEDIUM 13LOW 326

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 411 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Cross-File Repetition41 hits · 205 pts
SeverityFileLineSnippetContext
HIGHDrissionPage/version.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/common.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/errors.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/items.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/cookies.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/web.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/elements.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/tools.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/keys.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/locator.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/browser.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/cli.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/texts.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/settings.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_functions/by.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_configs/chromium_options.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_configs/session_options.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_configs/options_manage.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_pages/chromium_base.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_pages/chromium_tab.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_pages/chromium_frame.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_pages/session_page.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/console.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/screencast.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/downloader.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/clicker.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/scroller.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/selector.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/actions.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/waiter.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/rect.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/cookies_setter.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/states.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/setter.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_units/listener.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_browsers/chromium.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_base/driver.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_base/base.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_elements/chromium_element.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_elements/none_element.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
HIGHDrissionPage/_elements/session_element.py0@author : g1879 @contact : g1879@qq.com @website : https://drissionpage.cn @copyright: (c) 2020 by g1879, inc. all rightSTRING
Cross-Language Confusion25 hits · 135 pts
SeverityFileLineSnippetContext
HIGHtests/support.py287 function note(x) {{ window.events.push(x); }}CODE
HIGHtests/feature_cases/test_unit_wrapper_contracts.py273 default_perm.push()CODE
HIGHtests/feature_cases/test_small_unit_edge_contracts.py49 setter.push(False)CODE
HIGHtests/feature_cases/test_small_unit_edge_contracts.py310 'return this.documentElement.scrollLeft.toString() + " " + this.documentElement.scrollTop.toString();': "11 CODE
HIGHtests/feature_cases/test_listener_upgrade.py94 window.es.addEventListener('message', event => window.sseEvents.push(event.data));CODE
HIGHtests/feature_cases/test_listener_upgrade.py95 window.es.addEventListener('done', event => window.sseEvents.push(event.data));CODE
HIGHDrissionPage/_functions/web.py116 if (x< scrollLeft || y < scrollTop || x > vWidth + scrollLeft || y > vHeight + scrollTop){{return false;}}CODE
HIGHDrissionPage/_pages/chromium_base.py533 ele = document.createElement(null);CODE
HIGHDrissionPage/_pages/chromium_base.py540 ele = document.createElement(null);CODE
HIGHDrissionPage/_units/screencast.py66 DrissionPage_Screencast_chunks.push(e.data);CODE
HIGHDrissionPage/_units/scroller.py118 if (document.documentElement && document.documentElement.scrollTop) {CODE
HIGHDrissionPage/_units/rect.py95 r = self._ele._run_js('return this.scrollLeft.toString() + " " + this.scrollTop.toString();')CODE
HIGHDrissionPage/_units/rect.py159 r = self._owner._run_js('return window.innerWidth.toString() + " " + window.innerHeight.toString();')CODE
HIGHDrissionPage/_units/rect.py213 r = self._frame.doc_ele._run_js('return this.documentElement.scrollLeft.toString() + " " 'CODE
HIGHDrissionPage/_units/rect.py214 '+ this.documentElement.scrollTop.toString();')CODE
HIGHDrissionPage/_units/states.py180 or self._frame.frame_ele._run_js('return this.offsetParent === null;')CODE
HIGHDrissionPage/_elements/chromium_element.py1175if(e.snapshotItem(i).constructor.name=="Text"){a.push(e.snapshotItem(i).data);}CODE
HIGHDrissionPage/_elements/chromium_element.py1176else if(e.snapshotItem(i).constructor.name=="Attr"){a.push(e.snapshotItem(i).nodeValue);}CODE
HIGHDrissionPage/_elements/chromium_element.py1177else if(e.snapshotItem(i).constructor.name=="Comment"){a.push(e.snapshotItem(i).nodeValue);}CODE
HIGHDrissionPage/_elements/chromium_element.py1178else{a.push(e.snapshotItem(i));}}"""CODE
HIGHDrissionPage/_elements/chromium_element.py433 js = ('return this.complete && typeof this.naturalWidth != "undefined" 'CODE
HIGHDrissionPage/_elements/chromium_element.py434 '&& this.naturalWidth > 0 && typeof this.naturalHeight != "undefined" 'CODE
HIGHDrissionPage/_elements/chromium_element.py510 js = ('return this.complete && typeof this.naturalWidth != "undefined" && this.naturalWidth > 0 'CODE
HIGHDrissionPage/_elements/chromium_element.py1164if(e.singleNodeValue==null){return null;}CODE
HIGHDrissionPage/_elements/chromium_element.py1189 js = f'function(){{let e=document.evaluate(\'{xpath}\',{node_txt},null,{type_txt},null);\n{for_txt}\n{return_txt}}}'CODE
Hyper-Verbose Identifiers99 hits · 100 pts
SeverityFileLineSnippetContext
LOWtests/runner.py204def _case_from_feature_module(module_name: str):CODE
LOWtests/check_runner_quality.py34def test_failed_cases_do_not_count_as_coverage() -> None:CODE
LOWtests/check_runner_quality.py44def test_passed_cases_count_as_coverage() -> None:CODE
LOWtests/check_runner_quality.py50def test_sensitive_values_are_redacted() -> None:CODE
LOWtests/check_runner_quality.py64def test_case_selection_and_suite_classification() -> None:CODE
LOWtests/feature_cases/test_unit_wrapper_contracts.py194def _check_scroller_contracts():CODE
LOWtests/feature_cases/test_unit_wrapper_contracts.py260def _check_permission_and_cookie_payloads():CODE
LOW…ts/feature_cases/test_chromium_base_extra_contracts.py103def test_base_protocol_and_lazy_accessors():CODE
LOW…ts/feature_cases/test_chromium_base_extra_contracts.py209def test_base_storage_cache_alert_and_download_contracts():CODE
LOW…ts/feature_cases/test_chromium_base_extra_contracts.py313def test_base_lookup_and_element_helpers():CODE
LOW…ts/feature_cases/test_chromium_base_extra_contracts.py337def test_tab_cookie_conversion_mode_and_cleanup():CODE
LOW…ts/feature_cases/test_chromium_base_extra_contracts.py409def test_frame_accessors_and_detach_bookkeeping():CODE
LOWtests/feature_cases/test_base_page_contracts.py59def _check_base_parser_and_element_contracts():CODE
LOWtests/feature_cases/test_base_page_contracts.py157def _check_base_page_contracts():CODE
LOWtests/feature_cases/test_base_page_contracts.py213def _check_messenger_contracts():CODE
LOWtests/feature_cases/test_base_page_contracts.py271def _check_session_page_properties_and_elements():CODE
LOWtests/feature_cases/test_base_page_contracts.py334def _check_session_page_connections():CODE
LOWtests/feature_cases/test_base_page_contracts.py479def _check_chromium_tab_delegation():CODE
LOWtests/feature_cases/test_base_page_contracts.py643def _check_chromium_frame_delegation():CODE
LOWtests/feature_cases/test_runtime_unit_contracts.py63def test_screencast_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py115def test_browser_helper_edge_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py220def test_browser_path_and_profile_fallback_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py330def test_connection_response_and_browser_discovery_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py535def test_browser_lazy_units_and_delegation_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py693def test_browser_lifecycle_bookkeeping_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py901def test_driver_send_and_event_contracts():CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py1035def test_driver_start_stop_and_owner_contracts():CODE
LOWtests/feature_cases/test_navigation_result.py23def test_session_navigation_objects():CODE
LOWtests/feature_cases/test_navigation_result.py50def test_browser_navigation_matrix(executable):CODE
LOWtests/feature_cases/test_navigation_basics.py24def _check_session_local_file() -> None:CODE
LOWtests/feature_cases/test_navigation_basics.py35def _check_browser_navigation(ctx) -> None:CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py66def test_browser_properties_context_cookies_and_latest_tab():CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py148def test_browser_tab_lookup_activation_and_close_normalization():CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py255def test_tabs_bookkeeping_contracts():CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py330def test_chromium_base_properties_widgets_cookies_and_storage():CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py468def test_chromium_tab_delegation_close_and_disconnect():CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py612def test_chromium_frame_properties_delegation_and_bookkeeping():CODE
LOWtests/feature_cases/test_locator_edge_contracts.py31def test_single_locator_forms():CODE
LOWtests/feature_cases/test_locator_edge_contracts.py103def test_selenium_and_ax_edges():CODE
LOWtests/feature_cases/test_regression_basics.py22def test_no_browser_regressions():CODE
LOWtests/feature_cases/browser_interaction_server.py8def browser_interaction_routes():CODE
LOWtests/feature_cases/browser_interaction_server.py63def browser_interaction_server():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py222def _check_construction_and_identity():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py258def _check_content_and_attribute_contracts():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py307def _check_session_snapshot_contracts():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py331def _check_accessor_and_setter_wiring():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py368def _check_traversal_delegation():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py412def _check_element_actions_and_resources():CODE
LOWtests/feature_cases/test_chromium_element_contracts.py462def _check_javascript_payloads():CODE
LOWtests/feature_cases/test_small_unit_edge_contracts.py257def test_rect_and_state_edges():CODE
LOWtests/feature_cases/test_element_locators.py22def test_no_browser_locator_contracts():CODE
LOWtests/feature_cases/test_element_locators.py51def test_browser_locator_contracts(executable):STRING
LOWtests/feature_cases/test_browser_helper_contracts.py87def test_launch_argument_contracts():CODE
LOWtests/feature_cases/test_browser_helper_contracts.py138def test_preference_contracts():CODE
LOWtests/feature_cases/test_browser_helper_contracts.py225def test_connection_contracts():CODE
LOWtests/feature_cases/test_browser_helper_contracts.py371def test_process_invocation_contracts():CODE
LOWtests/feature_cases/test_browser_helper_contracts.py399def test_port_and_folder_contracts():CODE
LOWtests/feature_cases/test_browser_helper_contracts.py471def test_wait_and_error_contracts():CODE
LOWtests/feature_cases/test_element_core_behaviors.py22def _check_session_element_contracts() -> None:CODE
LOWtests/feature_cases/test_element_core_behaviors.py37def _check_browser_element_contracts(ctx) -> None:STRING
39 more matches not shown…
Unused Imports99 hits · 99 pts
SeverityFileLineSnippetContext
LOWtests/run.py4CODE
LOWtests/runner.py4CODE
LOWtests/support.py8CODE
LOWtests/check_runner_quality.py4CODE
LOWtests/check_ci_retry.py4CODE
LOWtests/feature_manifest.py9CODE
LOWtests/check_workflow_quality.py10CODE
LOWtests/feature_cases/test_unit_wrapper_contracts.py2CODE
LOW…ts/feature_cases/test_chromium_base_extra_contracts.py2CODE
LOWtests/feature_cases/test_listener_basics.py2CODE
LOWtests/feature_cases/test_options_settings.py2CODE
LOWtests/feature_cases/test_proxy_credentials.py2CODE
LOWtests/feature_cases/test_base_page_contracts.py2CODE
LOWtests/feature_cases/test_ssr_site_smoke.py2CODE
LOWtests/feature_cases/test_ssr_social_notes_mobile.py2CODE
LOW…sts/feature_cases/test_cross_origin_iframe_listener.py2CODE
LOWtests/feature_cases/test_tab_management.py2CODE
LOWtests/feature_cases/test_ssr_marketplace_flow.py2CODE
LOWtests/feature_cases/test_config_session_contracts.py2CODE
LOWtests/feature_cases/test_runtime_unit_contracts.py2CODE
LOWtests/feature_cases/test_download_management.py2CODE
LOWtests/feature_cases/test_startup_settings.py2CODE
LOWtests/feature_cases/test_pure_function_contracts.py2CODE
LOWtests/feature_cases/test_recommended_chromium_entry.py2CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py2CODE
LOWtests/feature_cases/test_navigation_result.py2CODE
LOWtests/feature_cases/test_navigation_basics.py2CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py2CODE
LOWtests/feature_cases/test_page_object_basics.py2CODE
LOWtests/feature_cases/test_locator_edge_contracts.py2CODE
LOWtests/feature_cases/test_tab_post_response.py2CODE
LOWtests/feature_cases/test_frame_shadow_setters.py2CODE
LOWtests/feature_cases/test_regression_basics.py2CODE
LOWtests/feature_cases/test_browser_contexts.py2CODE
LOWtests/feature_cases/browser_interaction_server.py3CODE
LOWtests/feature_cases/test_chromium_element_contracts.py2CODE
LOWtests/feature_cases/test_scroll_and_waits.py2CODE
LOWtests/feature_cases/test_optional_online_smoke.py2CODE
LOWtests/feature_cases/core_feature_server.py3CODE
LOW…sts/feature_cases/test_cross_origin_iframe_elements.py2CODE
LOWtests/feature_cases/test_mouse_trail.py2CODE
LOWtests/feature_cases/test_small_unit_edge_contracts.py2CODE
LOWtests/feature_cases/test_element_locators.py2CODE
LOWtests/feature_cases/test_browser_helper_contracts.py2CODE
LOWtests/feature_cases/test_element_core_behaviors.py2CODE
LOW…ts/feature_cases/test_waiter_setter_extra_contracts.py2CODE
LOWtests/feature_cases/test_chromium_tab_management.py2CODE
LOWtests/feature_cases/ssr_test_site.py2CODE
LOW…sts/feature_cases/test_chromium_options_environment.py2CODE
LOWtests/feature_cases/test_element_multi_click.py2CODE
LOWtests/feature_cases/test_api_behavior_changes.py2CODE
LOWtests/feature_cases/test_listener_upgrade.py2CODE
LOWtests/feature_cases/test_collection_action_contracts.py2CODE
LOWtests/feature_cases/test_listener_data_contracts.py2CODE
LOWtests/feature_cases/test_find_api.py2CODE
LOWtests/feature_cases/test_browser_download.py2CODE
LOW…feature_cases/test_chromium_element_extra_contracts.py2CODE
LOWtests/feature_cases/test_permissions.py2CODE
LOWtests/feature_cases/test_cookie_setters.py2CODE
LOWtests/feature_cases/test_console_and_cookie_formats.py2CODE
39 more matches not shown…
Deep Nesting70 hits · 68 pts
SeverityFileLineSnippetContext
LOWtests/runner.py301CODE
LOWtests/support.py237CODE
LOWtests/feature_cases/test_tab_management.py11CODE
LOWtests/feature_cases/test_chromium_tab_management.py11CODE
LOWtests/feature_cases/test_console_and_cookie_formats.py13CODE
LOWtests/regression_cases/test_listener_ws_sse.py13CODE
LOWDrissionPage/_functions/cookies.py18CODE
LOWDrissionPage/_functions/cookies.py47CODE
LOWDrissionPage/_functions/cookies.py102CODE
LOWDrissionPage/_functions/cookies.py163CODE
LOWDrissionPage/_functions/web.py20CODE
LOWDrissionPage/_functions/web.py257CODE
LOWDrissionPage/_functions/web.py36CODE
LOWDrissionPage/_functions/web.py258CODE
LOWDrissionPage/_functions/elements.py303CODE
LOWDrissionPage/_functions/elements.py82CODE
LOWDrissionPage/_functions/elements.py102CODE
LOWDrissionPage/_functions/elements.py121CODE
LOWDrissionPage/_functions/elements.py198CODE
LOWDrissionPage/_functions/tools.py68CODE
LOWDrissionPage/_functions/tools.py166CODE
LOWDrissionPage/_functions/locator.py15CODE
LOWDrissionPage/_functions/locator.py118CODE
LOWDrissionPage/_functions/locator.py147CODE
LOWDrissionPage/_functions/locator.py199CODE
LOWDrissionPage/_functions/locator.py255CODE
LOWDrissionPage/_functions/locator.py318CODE
LOWDrissionPage/_functions/locator.py394CODE
LOWDrissionPage/_functions/locator.py465CODE
LOWDrissionPage/_functions/locator.py503CODE
LOWDrissionPage/_functions/locator.py549CODE
LOWDrissionPage/_functions/browser.py23CODE
LOWDrissionPage/_functions/browser.py93CODE
LOWDrissionPage/_functions/browser.py279CODE
LOWDrissionPage/_functions/browser.py345CODE
LOWDrissionPage/_configs/chromium_options.py174CODE
LOWDrissionPage/_configs/options_manage.py16CODE
LOWDrissionPage/_pages/chromium_base.py526CODE
LOWDrissionPage/_pages/chromium_base.py790CODE
LOWDrissionPage/_pages/chromium_frame.py401CODE
LOWDrissionPage/_pages/session_page.py187CODE
LOWDrissionPage/_units/downloader.py169CODE
LOWDrissionPage/_units/downloader.py267CODE
LOWDrissionPage/_units/clicker.py26CODE
LOWDrissionPage/_units/actions.py198CODE
LOWDrissionPage/_units/actions.py226CODE
LOWDrissionPage/_units/listener.py161CODE
LOWDrissionPage/_units/listener.py192CODE
LOWDrissionPage/_units/listener.py426CODE
LOWDrissionPage/_units/listener.py463CODE
LOWDrissionPage/_units/listener.py653CODE
LOWDrissionPage/_units/listener.py669CODE
LOWDrissionPage/_units/listener.py712CODE
LOWDrissionPage/_units/listener.py727CODE
LOWDrissionPage/_browsers/chromium.py494CODE
LOWDrissionPage/_browsers/chromium.py512CODE
LOWDrissionPage/_browsers/chromium.py427CODE
LOWDrissionPage/_base/driver.py109CODE
LOWDrissionPage/_base/driver.py231CODE
LOWDrissionPage/_elements/chromium_element.py948CODE
10 more matches not shown…
Excessive Try-Catch Wrapping53 hits · 64 pts
SeverityFileLineSnippetContext
LOWtests/runner.py291 except Exception as exc:CODE
LOWtests/support.py179 except Exception:CODE
LOWtests/support.py191 except Exception:CODE
LOWtests/support.py197 except Exception:CODE
LOWtests/support.py378 except Exception:STRING
LOWtests/support.py411 except Exception:STRING
MEDIUMtests/support.py408def _send_ws_close(self) -> None:CODE
LOWtests/feature_cases/test_base_page_contracts.py44 except Exception as exc:CODE
MEDIUMtests/feature_cases/test_base_page_contracts.py39def _expect_error(error_type, action, message):CODE
LOWtests/feature_cases/test_ssr_social_notes_mobile.py77 except Exception:STRING
LOWtests/feature_cases/test_tab_management.py33 except Exception:CODE
LOWtests/feature_cases/test_config_session_contracts.py301 except Exception as exc:STRING
LOWtests/feature_cases/test_pure_function_contracts.py493 except Exception as error:CODE
MEDIUMtests/feature_cases/test_pure_function_contracts.py488def _assert_raises(error_type, func, *args, **kwargs):CODE
LOW…eature_cases/test_browser_lifecycle_extra_contracts.py66 except Exception as error:CODE
MEDIUM…eature_cases/test_browser_lifecycle_extra_contracts.py61def _assert_raises(expected, func, *args, **kwargs):CODE
LOWtests/feature_cases/test_chromium_browser_contracts.py59 except Exception as error:CODE
MEDIUMtests/feature_cases/test_chromium_browser_contracts.py54def _assert_raises(expected, func, *args, **kwargs):CODE
LOWtests/feature_cases/test_browser_helper_contracts.py66 except Exception as error:CODE
MEDIUMtests/feature_cases/test_browser_helper_contracts.py61def _assert_raises(expected, func, *args, **kwargs):CODE
LOW…ts/feature_cases/test_waiter_setter_extra_contracts.py75 except Exception as error:CODE
MEDIUM…ts/feature_cases/test_waiter_setter_extra_contracts.py70def _assert_raises(expected, func, *args, **kwargs):CODE
LOWtests/feature_cases/test_chromium_tab_management.py35 except Exception:CODE
LOWtests/feature_cases/test_chromium_tab_management.py51 except Exception:CODE
LOWtests/feature_cases/test_listener_data_contracts.py571 except Exception as exc:CODE
MEDIUMtests/feature_cases/test_listener_data_contracts.py566def _expect_error(error_type, action, message):CODE
LOWtests/regression_cases/test_listener_ws_sse.py31 except Exception as e:CODE
LOWtests/regression_cases/test_listener_ws_sse.py49 except Exception as e:CODE
LOWtests/regression_cases/test_listener_ws_sse.py61 except Exception as e:CODE
LOWtests/regression_cases/test_listener_ws_sse.py87 except Exception as e:CODE
LOWtests/regression_cases/test_navigation_result.py36 except Exception as e:CODE
LOWtests/regression_cases/test_alert_on_open.py34 except Exception:CODE
LOWtests/regression_cases/test_locator_behavior.py60 except Exception as exc:CODE
LOWtests/regression_cases/test_no_browser_contract_gaps.py29 except Exception as exc:CODE
LOWtests/regression_cases/test_no_browser_contract_gaps.py37 except Exception as exc:CODE
LOWtests/regression_cases/test_no_browser_contract_gaps.py59 except Exception as exc:CODE
LOWDrissionPage/_functions/cookies.py120 except Exception:CODE
LOWDrissionPage/_functions/browser.py207 except Exception:CODE
LOWDrissionPage/_functions/browser.py292 except Exception:CODE
MEDIUMDrissionPage/_functions/browser.py201def do():CODE
LOWDrissionPage/_configs/options_manage.py97 except Exception:CODE
LOWDrissionPage/_pages/chromium_frame.py66 except Exception as e:CODE
LOWDrissionPage/_pages/session_page.py75 except Exception:CODE
LOWDrissionPage/_pages/session_page.py230 except Exception as e:CODE
MEDIUMDrissionPage/_pages/session_page.py72def json(self):CODE
LOWDrissionPage/_browsers/chromium.py519 except Exception as e:CODE
MEDIUMDrissionPage/_browsers/chromium.py323def activate_tab(self, id_ind_tab):CODE
MEDIUMDrissionPage/_elements/chromium_element.py98def attrs(self):CODE
MEDIUMDrissionPage/_elements/chromium_element.py571def focus(self):CODE
LOWDrissionPage/_elements/chromium_element.py568 except Exception:CODE
LOWDrissionPage/_elements/chromium_element.py574 except Exception:CODE
LOWDrissionPage/_elements/chromium_element.py1249 except Exception:CODE
LOWDrissionPage/_elements/session_element.py294 except Exception as e:CODE
Hallucination Indicators6 hits · 60 pts
SeverityFileLineSnippetContext
CRITICALDrissionPage/_units/clicker.py105 curr_tid = self._ele.tab.browser._tabs.get_newest_tab(self._ele.tab._context_id)CODE
CRITICALDrissionPage/_units/clicker.py108 tid = self._ele.tab.browser.wait._new_tab(self._ele.tab._context_id, curr_tab=curr_tid)CODE
CRITICALDrissionPage/_units/clicker.py127 self._ele.tab._browser.set.download_path('.')CODE
CRITICALDrissionPage/_units/clicker.py173 self._ele.owner.browser._dl_mgr._tab_missions.setdefault(self._ele.owner.tab_id, set()).add(m)CODE
CRITICALDrissionPage/_units/clicker.py184 curr_tid = self._ele.tab.browser._tabs.get_newest_tab(self._ele.tab._context_id)CODE
CRITICALDrissionPage/_units/clicker.py186 tid = self._ele.tab.browser.wait._new_tab(self._ele.tab._context_id, timeout=timeout, curr_tab=curr_tid)CODE
AI Structural Patterns8 hits · 8 pts
SeverityFileLineSnippetContext
LOWDrissionPage/_functions/elements.py384CODE
LOWDrissionPage/_functions/elements.py419CODE
LOWDrissionPage/_functions/elements.py62CODE
LOWDrissionPage/_functions/elements.py67CODE
LOWDrissionPage/_functions/elements.py233CODE
LOWDrissionPage/_functions/elements.py238CODE
LOWDrissionPage/_pages/chromium_base.py790CODE
LOWDrissionPage/_pages/chromium_frame.py401CODE
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippetContext
LOWDrissionPage/_functions/keys.py281 # 'KeyK': {'keyCode': 75, 'code': 'KeyK', 'shiftKey': 'K', 'key': 'k'},COMMENT
LOWDrissionPage/_functions/keys.py301 # 'F14': {'keyCode': 125, 'code': 'F14', 'key': 'F14'},COMMENT
LOWDrissionPage/_functions/keys.py321 # 'Equal': {'keyCode': 187, 'code': 'Equal', 'shiftKey': '+', 'key': '='},COMMENT
LOWDrissionPage/_elements/chromium_element.py1401#COMMENT
LOWDrissionPage/_elements/chromium_element.py1421# obj_ids = [i['value']['objectId'] for i in ele.owner._run_cdp('Runtime.getProperties',COMMENT
Modern Structural Boilerplate5 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/feature_cases/test_element_core_behaviors.py78def _set_checked(checkbox, checked: bool) -> None:STRING
LOWtests/regression_cases/test_locator_behavior.py8def set_checked(checkbox, checked: bool) -> None:CODE
LOWDrissionPage/common.py18__all__ = ['make_session_ele', 'Actions', 'Keys', 'By', 'Settings', 'wait_until', 'configs_to_here', 'get_blob',CODE
LOWDrissionPage/items.py18__all__ = ['ChromiumElement', 'ShadowRoot', 'NoneElement', 'SessionElement', 'NavResult',CODE
LOWDrissionPage/_functions/browser.py248def _set_value_to_dict(target_dict: dict, src: list, value) -> None:CODE