Framework for Browser Automation, Web Scraping, and Testing. CDP Mode is undetectable to anti-bot systems and adds stealth to stock Playwright.
This report summarizes scanner evidence for seleniumbase/SeleniumBase, a Python project with 13,063 GitHub stars. SynthScan examined 101,636 lines of code across 730 source files, recording 1388 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 28.0 (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? 547 finding(s).
Are imports declared and package/API names verified? 304 finding(s).
Are wrappers, guards, and repeated structures necessary? 883 finding(s).
Which changes need focused human review? 1388 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 1388 distinct pattern matches across 21 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 |
|---|---|---|---|---|
| HIGH | seleniumbase/core/tour_helper.py | 958 | """script.onload = function() { null };""" | STRING |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1037 | h = g.left + (i || g.width / 2), | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1038 | m = g.top + (o || g.height / 2), | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1048 | effectAllowed: null, | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1049 | dropEffect: null, | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1051 | files: Object.setPrototypeOf([], null), | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1061 | _.types.push(e); | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1093 | 0, 0, 0, p, d, l, s, c, !1, 0, null); | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1096 | i && setTimeout(i, n); | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1102 | 0, p, d, l, s, c, !1, 0, null); | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1103 | Object.setPrototypeOf(o, null); | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1107 | i && setTimeout(i, n); | CODE |
| HIGH⚡ | seleniumbase/core/sb_cdp.py | 1112 | if (t && t.contains(v)) {{ | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 1078 | return e >= 0 ? this._items[e]._data : null; | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 1723 | self.page.evaluate("navigator.language || navigator.languages[0]") | CODE |
| HIGH | seleniumbase/console_scripts/run.py | 592 | print(" seleniumbase encrypt || seleniumbase obfuscate") | CODE |
| HIGH | seleniumbase/console_scripts/run.py | 594 | print(" sbase encrypt || sbase obfuscate") | CODE |
| HIGH | seleniumbase/console_scripts/run.py | 609 | print(" seleniumbase decrypt || seleniumbase unobfuscate") | CODE |
| HIGH | seleniumbase/console_scripts/run.py | 611 | print(" sbase decrypt || sbase unobfuscate") | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 131 | non_id_attributes.push('name'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 132 | non_id_attributes.push('data-qa'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 133 | non_id_attributes.push('data-tid'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 134 | non_id_attributes.push('data-el'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 135 | non_id_attributes.push('data-se'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 136 | non_id_attributes.push('data-name'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 137 | non_id_attributes.push('data-auto'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 138 | non_id_attributes.push('data-text'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 139 | non_id_attributes.push('data-test'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 140 | non_id_attributes.push('data-testid'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 141 | non_id_attributes.push('data-test-id'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 142 | non_id_attributes.push('data-test-selector'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 143 | non_id_attributes.push('data-nav'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 144 | non_id_attributes.push('data-sb'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 145 | non_id_attributes.push('data-cy'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 146 | non_id_attributes.push('data-action'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 147 | non_id_attributes.push('data-target'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 148 | non_id_attributes.push('data-tooltip'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 149 | non_id_attributes.push('alt'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 150 | non_id_attributes.push('title'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 151 | non_id_attributes.push('heading'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 152 | non_id_attributes.push('translate'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 153 | non_id_attributes.push('aria-label'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 154 | non_id_attributes.push('aria-describedby'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 155 | non_id_attributes.push('rel'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 156 | non_id_attributes.push('ng-model'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 157 | non_id_attributes.push('ng-href'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 158 | non_id_attributes.push('href'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 159 | non_id_attributes.push('label'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 160 | non_id_attributes.push('data-content'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 161 | non_id_attributes.push('data-tip'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 162 | non_id_attributes.push('data-for'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 163 | non_id_attributes.push('class'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 164 | non_id_attributes.push('for'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 165 | non_id_attributes.push('placeholder'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 166 | non_id_attributes.push('value'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 167 | non_id_attributes.push('ng-click'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 168 | non_id_attributes.push('ng-if'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 169 | non_id_attributes.push('src'); | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 176 | selector_by_attr[i] = null; | CODE |
| HIGH⚡ | seleniumbase/js_code/recorder_js.py | 191 | basic_tags.push('h1'); | CODE |
| 162 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | seleniumbase/core/capabilities_parser.py | 10 | except SyntaxError: | CODE |
| HIGH | seleniumbase/core/capabilities_parser.py | 23 | except SyntaxError: | CODE |
| HIGH | seleniumbase/core/recorder_helper.py | 13 | except Exception: | CODE |
| HIGH | seleniumbase/core/recorder_helper.py | 29 | except Exception: | CODE |
| HIGH | seleniumbase/core/download_helper.py | 43 | except OSError: | CODE |
| HIGH | seleniumbase/core/download_helper.py | 51 | except OSError: | CODE |
| HIGH | seleniumbase/core/download_helper.py | 59 | except Exception: | CODE |
| HIGH | seleniumbase/core/download_helper.py | 75 | except OSError: | CODE |
| HIGH | seleniumbase/core/download_helper.py | 70 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 311 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 315 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 459 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 463 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 695 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 699 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 1135 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 368 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 606 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 745 | except Exception: | CODE |
| HIGH | seleniumbase/core/tour_helper.py | 882 | except Exception: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 179 | except asyncio.TimeoutError: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 181 | except Exception: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 4007 | except asyncio.TimeoutError: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 4009 | except Exception: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 359 | except Exception: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 3982 | except Exception: | CODE |
| HIGH | seleniumbase/core/sb_cdp.py | 792 | except Exception: | CODE |
| HIGH | seleniumbase/core/browser_launcher.py | 5219 | except Exception: | CODE |
| HIGH | seleniumbase/core/report_helper.py | 140 | except Exception: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 121 | except Exception: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 143 | except Exception: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 160 | except Exception: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 249 | except TypeError: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 279 | except TypeError: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 309 | except TypeError: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 337 | except TypeError: | CODE |
| HIGH | seleniumbase/core/detect_b_ver.py | 367 | except TypeError: | CODE |
| HIGH | seleniumbase/core/visual_helper.py | 19 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 136 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 142 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 525 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 558 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 592 | except OSError: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 597 | except OSError: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 566 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 573 | except Exception: | CODE |
| HIGH | seleniumbase/core/log_helper.py | 536 | except Exception: | CODE |
| HIGH | seleniumbase/core/nest_asyncio.py | 152 | except (KeyError, RuntimeError): | CODE |
| HIGH | seleniumbase/core/nest_asyncio.py | 159 | except (KeyError, RuntimeError): | CODE |
| HIGH | seleniumbase/core/nest_asyncio.py | 166 | except (TypeError, ValueError): | CODE |
| HIGH | seleniumbase/core/nest_asyncio.py | 171 | except (TypeError, ValueError): | CODE |
| HIGH | seleniumbase/translate/translator.py | 1014 | except Exception: | CODE |
| HIGH | seleniumbase/plugins/driver_manager.py | 62 | except Exception: | CODE |
| HIGH | seleniumbase/plugins/db_reporting_plugin.py | 120 | except Exception: | CODE |
| HIGH | seleniumbase/plugins/selenium_plugin.py | 1529 | except AttributeError: | CODE |
| HIGH | seleniumbase/plugins/selenium_plugin.py | 1531 | except Exception: | CODE |
| HIGH | seleniumbase/plugins/sb_manager.py | 1455 | except AttributeError: | CODE |
| HIGH | seleniumbase/plugins/sb_manager.py | 1457 | except Exception: | CODE |
| HIGH | seleniumbase/plugins/pytest_plugin.py | 2683 | except KeyboardInterrupt: | CODE |
| HIGH | seleniumbase/plugins/pytest_plugin.py | 2685 | except Exception: | CODE |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 896 | def test_find_army_of_robots_on_xkcd_desert_island(self): | CODE |
| LOW | README.md | 1228 | def is_there_a_cloaked_klingon_ship_on_this_page(): | CODE |
| LOW | README.md | 1246 | def get_mirror_universe_captain_picard_superbowl_ad(superbowl_year): | CODE |
| LOW | seleniumbase/core/jqc_helper.py | 17 | def jquery_confirm_button_dialog(driver, message, buttons, options=None): | CODE |
| LOW | seleniumbase/core/jqc_helper.py | 111 | def jquery_confirm_text_dialog(driver, message, button=None, options=None): | CODE |
| LOW | seleniumbase/core/jqc_helper.py | 200 | def jquery_confirm_full_dialog(driver, message, buttons, options=None): | CODE |
| LOW | seleniumbase/core/application_manager.py | 8 | def generate_application_string(cls, test): | CODE |
| LOW | seleniumbase/core/session_helper.py | 4 | def end_reused_class_session_as_needed(): | CODE |
| LOW | seleniumbase/core/download_helper.py | 55 | def reset_downloads_folder_assistant(archived_downloads_folder): | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 2157 | def __make_sure_pyautogui_lock_is_writable(self): | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 2161 | def __verify_pyautogui_has_a_headed_browser(self): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 70 | def __convert_to_css_if_xpath(self, selector): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 523 | def click_nth_visible_element(self, selector, number, scroll=True): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 653 | def __mouse_click_with_offset_async(self, element, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 912 | def bring_active_window_to_front(self): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2082 | def get_path_of_downloaded_file(self, file): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2172 | def __install_pyautogui_if_missing(self): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2244 | def __get_configured_pyautogui(self, pyautogui_copy): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2450 | def _on_an_incapsula_hcaptcha_page(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2459 | def _on_a_datadome_slider_page(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2470 | def _on_a_friendly_captcha_page(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2549 | def __gui_slide_datadome_captcha(self): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2579 | def __cdp_click_incapsula_hcaptcha(self, use_cdp=True): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 2628 | def __gui_click_friendly_captcha(self, use_cdp=False): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3237 | def wait_for_text_not_visible(self, text, selector="body", timeout=None): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3302 | def wait_for_element_not_visible(self, selector, timeout=None): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3346 | def wait_for_any_of_elements_visible(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3418 | def wait_for_any_of_elements_present(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3480 | def assert_any_of_elements_visible(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3485 | def assert_any_of_elements_present(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3542 | def assert_element_not_visible(self, selector, timeout=None): | CODE |
| LOW | seleniumbase/core/sb_cdp.py | 3978 | def __create_log_path_as_needed(self, script_logpath): | CODE |
| LOW⚡ | seleniumbase/core/browser_launcher.py | 2295 | def _add_chrome_disable_csp_extension(chrome_options): | CODE |
| LOW⚡ | seleniumbase/core/browser_launcher.py | 2302 | def _add_chrome_ad_block_extension(chrome_options): | CODE |
| LOW⚡ | seleniumbase/core/browser_launcher.py | 2309 | def _add_chrome_recorder_extension(chrome_options): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 144 | def make_driver_executable_if_not(driver_path): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 364 | def get_latest_chromedriver_version(): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 408 | def find_chromedriver_version_to_use(use_version, driver_version): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 441 | def find_edgedriver_version_to_use(use_version, driver_version): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 1090 | def verify_pyautogui_has_a_headed_browser(driver): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 1099 | def __install_pyautogui_if_missing(): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 1165 | def install_pyautogui_if_missing(driver): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 2047 | def headless_iedriver_on_path(): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 2051 | def get_valid_binary_names_for_browser(browser): | CODE |
| LOW | seleniumbase/core/browser_launcher.py | 2171 | def _add_chrome_proxy_extension( | CODE |
| LOW | seleniumbase/core/report_helper.py | 134 | def clear_out_old_report_logs(archive_past_runs=True, get_log_folder=False): | CODE |
| LOW | seleniumbase/core/detect_b_ver.py | 93 | def linux_browser_apps_to_cmd(*apps): | CODE |
| LOW | seleniumbase/core/detect_b_ver.py | 375 | def windows_browser_apps_to_cmd(*apps): | CODE |
| LOW | seleniumbase/core/detect_b_ver.py | 428 | def get_browser_version_from_binary(binary_location): | CODE |
| LOW | seleniumbase/core/detect_b_ver.py | 456 | def get_browser_version_from_os(browser_type): | CODE |
| LOW⚡ | seleniumbase/core/visual_helper.py | 10 | def get_visual_baseline_folder(): | CODE |
| LOW⚡ | seleniumbase/core/visual_helper.py | 14 | def visual_baseline_folder_setup(): | CODE |
| LOW | seleniumbase/core/sb_driver.py | 247 | def assert_element_not_visible(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_driver.py | 280 | def wait_for_element_not_visible(self, *args, **kwargs): | CODE |
| LOW⚡ | seleniumbase/core/sb_driver.py | 299 | def wait_for_text_not_visible(self, *args, **kwargs): | CODE |
| LOW⚡ | seleniumbase/core/sb_driver.py | 304 | def wait_for_and_accept_alert(self, *args, **kwargs): | CODE |
| LOW⚡ | seleniumbase/core/sb_driver.py | 309 | def wait_for_and_dismiss_alert(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/sb_driver.py | 329 | def is_non_empty_text_visible(self, *args, **kwargs): | CODE |
| LOW | seleniumbase/core/proxy_helper.py | 157 | def remove_proxy_zip_if_present(): | CODE |
| LOW | seleniumbase/core/log_helper.py | 105 | def get_driver_name_and_version(driver, browser): | CODE |
| 278 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/core/recorder_helper.py | 13 | except Exception: | CODE |
| LOW | seleniumbase/core/recorder_helper.py | 29 | except Exception: | CODE |
| LOW | seleniumbase/core/recorder_helper.py | 430 | except Exception: | CODE |
| LOW | seleniumbase/core/session_helper.py | 15 | except Exception: | CODE |
| LOW | seleniumbase/core/download_helper.py | 59 | except Exception: | CODE |
| LOW | seleniumbase/core/download_helper.py | 70 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 43 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 55 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 297 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 311 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 315 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 329 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 344 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 368 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 382 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 398 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 444 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 459 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 463 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 475 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 496 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 545 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 577 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 590 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 606 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 629 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 680 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 695 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 699 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 719 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 729 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 745 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 766 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 828 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 853 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 863 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 874 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 882 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 903 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 1135 | except Exception: | CODE |
| LOW | seleniumbase/core/tour_helper.py | 87 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 99 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 131 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 143 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 184 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 196 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 243 | except Exception: | STRING |
| LOW | seleniumbase/core/tour_helper.py | 253 | except Exception: | STRING |
| MEDIUM | seleniumbase/core/sb_cdp.py | 777 | def __get_attribute(self, element, attribute): | CODE |
| MEDIUM | seleniumbase/core/sb_cdp.py | 1459 | def maximize(self): | CODE |
| MEDIUM | seleniumbase/core/sb_cdp.py | 2137 | def is_attribute_present(self, selector, attribute, value=None): | CODE |
| MEDIUM | seleniumbase/core/sb_cdp.py | 3050 | def gui_hover_element(self, selector, timeframe=0.27): | CODE |
| MEDIUM | seleniumbase/core/sb_cdp.py | 3142 | def is_element_present(self, selector): | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 983 | except Exception: | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 990 | except Exception: | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 997 | except Exception: | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 2150 | except Exception: | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 3146 | except Exception: | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 3155 | except Exception: | CODE |
| LOW⚡ | seleniumbase/core/sb_cdp.py | 3162 | except Exception: | CODE |
| 297 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/core/jqc_helper.py | 17 | CODE | |
| LOW | seleniumbase/core/jqc_helper.py | 111 | CODE | |
| LOW | seleniumbase/core/jqc_helper.py | 200 | CODE | |
| LOW | seleniumbase/core/recorder_helper.py | 4 | CODE | |
| LOW | seleniumbase/core/settings_parser.py | 5 | CODE | |
| LOW | seleniumbase/core/tour_helper.py | 257 | CODE | |
| LOW | seleniumbase/core/tour_helper.py | 403 | CODE | |
| LOW | seleniumbase/core/tour_helper.py | 501 | CODE | |
| LOW | seleniumbase/core/tour_helper.py | 634 | CODE | |
| LOW | seleniumbase/core/tour_helper.py | 771 | CODE | |
| LOW | seleniumbase/core/tour_helper.py | 908 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 393 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 951 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 963 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 1531 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 2172 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 2579 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 2689 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 2999 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 3346 | CODE | |
| LOW | seleniumbase/core/sb_cdp.py | 3418 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 152 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 338 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 385 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 408 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 498 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 653 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 1099 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 1283 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 1368 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 1788 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 2051 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 2171 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 2316 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 2884 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 3056 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 3655 | CODE | |
| LOW | seleniumbase/core/browser_launcher.py | 4078 | CODE | |
| LOW | seleniumbase/core/detect_b_ver.py | 102 | CODE | |
| LOW | seleniumbase/core/proxy_helper.py | 170 | CODE | |
| LOW | seleniumbase/core/log_helper.py | 105 | CODE | |
| LOW | seleniumbase/core/log_helper.py | 124 | CODE | |
| LOW | seleniumbase/core/log_helper.py | 391 | CODE | |
| LOW | seleniumbase/core/log_helper.py | 515 | CODE | |
| LOW | seleniumbase/core/log_helper.py | 543 | CODE | |
| LOW | seleniumbase/core/nest_asyncio.py | 91 | CODE | |
| LOW | seleniumbase/core/nest_asyncio.py | 220 | CODE | |
| LOW | seleniumbase/core/nest_asyncio.py | 52 | CODE | |
| LOW | seleniumbase/core/nest_asyncio.py | 244 | CODE | |
| LOW | seleniumbase/core/nest_asyncio.py | 288 | CODE | |
| LOW | seleniumbase/translate/translator.py | 103 | CODE | |
| LOW | seleniumbase/translate/translator.py | 268 | CODE | |
| LOW | seleniumbase/plugins/driver_manager.py | 67 | CODE | |
| LOW | seleniumbase/plugins/sb_manager.py | 33 | CODE | |
| LOW | seleniumbase/plugins/base_plugin.py | 219 | CODE | |
| LOW | seleniumbase/plugins/base_plugin.py | 364 | CODE | |
| LOW | seleniumbase/plugins/pytest_plugin.py | 1665 | CODE | |
| LOW | seleniumbase/plugins/pytest_plugin.py | 2120 | CODE | |
| LOW | seleniumbase/plugins/pytest_plugin.py | 2187 | CODE | |
| LOW | seleniumbase/plugins/pytest_plugin.py | 2228 | CODE | |
| 80 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | seleniumbase/core/sb_cdp.py | 0 | var $elements = document.queryselectorall( 'form[class], form div[class]'); var index = 0, length = $elements.length; fo | STRING |
| HIGH | seleniumbase/core/browser_launcher.py | 0 | var $elements = document.queryselectorall( 'form[class], form div[class]'); var index = 0, length = $elements.length; fo | STRING |
| HIGH | seleniumbase/undetected/cdp_driver/tab.py | 0 | var $elements = document.queryselectorall( 'form[class], form div[class]'); var index = 0, length = $elements.length; fo | STRING |
| HIGH | seleniumbase/core/sb_cdp.py | 0 | var $elements = document.queryselectorall( 'form[style], form div[style]'); var index = 0, length = $elements.length; fo | STRING |
| HIGH | seleniumbase/core/browser_launcher.py | 0 | var $elements = document.queryselectorall( 'form[style], form div[style]'); var index = 0, length = $elements.length; fo | STRING |
| HIGH | seleniumbase/undetected/cdp_driver/tab.py | 0 | var $elements = document.queryselectorall( 'form[style], form div[style]'); var index = 0, length = $elements.length; fo | STRING |
| HIGH | seleniumbase/core/sb_cdp.py | 0 | var $elements = document.queryselectorall( 'form [id*="turnstile"]'); var index = 0, length = $elements.length; for(; in | STRING |
| HIGH | seleniumbase/core/browser_launcher.py | 0 | var $elements = document.queryselectorall( 'form [id*="turnstile"]'); var index = 0, length = $elements.length; for(; in | STRING |
| HIGH | seleniumbase/undetected/cdp_driver/tab.py | 0 | var $elements = document.queryselectorall( 'form [id*="turnstile"]'); var index = 0, length = $elements.length; for(; in | STRING |
| HIGH | seleniumbase/core/sb_cdp.py | 0 | var $elements = document.queryselectorall( '[style*="text-align: center;"]'); var index = 0, length = $elements.length; | STRING |
| HIGH | seleniumbase/core/browser_launcher.py | 0 | var $elements = document.queryselectorall( '[style*="text-align: center;"]'); var index = 0, length = $elements.length; | STRING |
| HIGH | seleniumbase/undetected/cdp_driver/tab.py | 0 | var $elements = document.queryselectorall( '[style*="text-align: center;"]'); var index = 0, length = $elements.length; | STRING |
| HIGH | seleniumbase/core/browser_launcher.py | 0 | if the driver is disconnected, use a cdp method when available. | STRING |
| HIGH | seleniumbase/core/sb_driver.py | 0 | if the driver is disconnected, use a cdp method when available. | STRING |
| HIGH | seleniumbase/core/log_helper.py | 0 | if the driver is disconnected, use a cdp method when available. | STRING |
| HIGH | help_docs/syntax_formats.md | 0 | this method overrides get_new_driver() from basecase. | STRING |
| HIGH | examples/test_override_sb_fixture.py | 0 | this method overrides get_new_driver() from basecase. | STRING |
| HIGH | examples/test_override_driver.py | 0 | this method overrides get_new_driver() from basecase. | STRING |
| HIGH | examples/raw_uc_events.py | 0 | note: this uses plain uc mode, which was replaced by uc + cdp mode. pyautogui is installed automatically for uc_gui meth | STRING |
| HIGH | examples/uc_cdp_events.py | 0 | note: this uses plain uc mode, which was replaced by uc + cdp mode. pyautogui is installed automatically for uc_gui meth | STRING |
| HIGH | examples/raw_uc_logging.py | 0 | note: this uses plain uc mode, which was replaced by uc + cdp mode. pyautogui is installed automatically for uc_gui meth | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | seleniumbase/core/create_db_tables.sql | 4 | # ----------------------------------- | COMMENT |
| MEDIUM | seleniumbase/core/create_db_tables.sql | 23 | # ----------------------------------- | COMMENT |
| MEDIUM | seleniumbase/core/nest_asyncio.py | 119 | # ----------------------------------------------------------------- | COMMENT |
| MEDIUM | seleniumbase/core/nest_asyncio.py | 194 | # ----------------------------------------------------------------- | COMMENT |
| MEDIUM | seleniumbase/translate/translator.py | 1001 | # ---------------------------------------- | COMMENT |
| MEDIUM | seleniumbase/translate/translator.py | 1020 | # ---------------------------------------- | COMMENT |
| MEDIUM | seleniumbase/console_scripts/sb_print.py | 588 | # ---------------------------------------- | COMMENT |
| MEDIUM | seleniumbase/console_scripts/sb_print.py | 632 | # ---------------------------------------- | COMMENT |
| MEDIUM⚡ | mcp_servers/server.py | 112 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mcp_servers/server.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mcp_servers/server.py | 378 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mcp_servers/server.py | 380 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 311 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 313 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 485 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 487 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 758 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 760 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1164 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1408 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1410 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1580 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1582 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1649 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1651 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1825 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1827 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1872 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mcp_servers/server.py | 1874 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 3 | CODE | |
| LOW | seleniumbase/__init__.py | 7 | CODE | |
| LOW | seleniumbase/__init__.py | 8 | CODE | |
| LOW | seleniumbase/__init__.py | 10 | CODE | |
| LOW | seleniumbase/__init__.py | 11 | CODE | |
| LOW | seleniumbase/__init__.py | 12 | CODE | |
| LOW | seleniumbase/__init__.py | 13 | CODE | |
| LOW | seleniumbase/__init__.py | 14 | CODE | |
| LOW | seleniumbase/__init__.py | 16 | CODE | |
| LOW | seleniumbase/__init__.py | 17 | CODE | |
| LOW | seleniumbase/__init__.py | 18 | CODE | |
| LOW | seleniumbase/__init__.py | 19 | CODE | |
| LOW | seleniumbase/__init__.py | 20 | CODE | |
| LOW | seleniumbase/__init__.py | 21 | CODE | |
| LOW | seleniumbase/__init__.py | 22 | CODE | |
| LOW | seleniumbase/core/mysql.py | 22 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 1 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 2 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 3 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 4 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 5 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 6 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 7 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 8 | CODE | |
| LOW | seleniumbase/translate/__init__.py | 9 | CODE | |
| LOW | seleniumbase/console_scripts/run.py | 1217 | CODE | |
| LOW | seleniumbase/behave/steps.py | 1 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/config.py | 1 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/__init__.py | 1 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/__init__.py | 2 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/__init__.py | 3 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 1 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 13 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 14 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 15 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 16 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 17 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/browser.py | 2 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 1 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 19 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 20 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 21 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 22 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 23 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 24 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/cdp_util.py | 2 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/tab.py | 1 | CODE | |
| LOW | sbase/__init__.py | 1 | CODE | |
| LOW | sbase/__init__.py | 2 | CODE | |
| LOW | sbase/__init__.py | 3 | CODE | |
| LOW | sbase/__init__.py | 4 | CODE | |
| LOW | sbase/__init__.py | 5 | CODE | |
| LOW | sbase/__init__.py | 6 | CODE | |
| LOW | sbase/__init__.py | 7 | CODE | |
| LOW | sbase/__init__.py | 8 | CODE | |
| LOW | sbase/__init__.py | 9 | CODE | |
| LOW | sbase/__init__.py | 10 | CODE | |
| LOW | sbase/__init__.py | 11 | CODE | |
| LOW | sbase/__init__.py | 12 | CODE | |
| LOW | sbase/__init__.py | 13 | CODE | |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | seleniumbase/undetected/__init__.py | 211 | # Create a temporary folder for the user-data profile. | COMMENT |
| MEDIUM | examples/tour_examples/driverjs_maps_tour.py | 15 | # Create a website tour using the DriverJS library | COMMENT |
| MEDIUM | examples/tour_examples/google_tour.py | 14 | # Create a website tour using the ShepherdJS library with "dark" theme | COMMENT |
| MEDIUM | examples/tour_examples/google_tour.py | 24 | # Create a website tour using the ShepherdJS library with "light" theme | COMMENT |
| MEDIUM | examples/tour_examples/google_tour.py | 35 | # Create a website tour using the Bootstrap Tour JS library | COMMENT |
| MEDIUM | examples/tour_examples/google_tour.py | 50 | # Create a website tour using the IntroJS library | COMMENT |
| MEDIUM⚡ | examples/presenter/fundamentals.py | 393 | "sbase mkdir [DIRECTORY] # Create a test directory\n" | CODE |
| MEDIUM⚡ | examples/presenter/fundamentals.py | 394 | "sbase mkfile [FILE.py] # Create a test file\n" | CODE |
| MEDIUM⚡ | examples/presenter/fundamentals.py | 397 | "sbase mkpres # Create a Presentation boilerplate\n" | CODE |
| MEDIUM⚡ | examples/presenter/fundamentals.py | 398 | "sbase mkchart # Create a Chart boilerplate\n" | CODE |
| MEDIUM | examples/presenter/py_virtual_envs.py | 126 | "# Create a virtual environment:\n" | CODE |
| MEDIUM | examples/presenter/py_virtual_envs.py | 172 | "# Create a requirements file from installed packages:\n" | CODE |
| MEDIUM⚡ | examples/presenter/edge_presentation.py | 648 | "sbase mkdir [DIRECTORY] # Create a test directory\n" | CODE |
| MEDIUM⚡ | examples/presenter/edge_presentation.py | 649 | "sbase mkfile [FILE.py] # Create a test file\n" | CODE |
| MEDIUM⚡ | examples/presenter/edge_presentation.py | 652 | "sbase mkpres # Create a Presentation boilerplate\n" | CODE |
| MEDIUM⚡ | examples/presenter/edge_presentation.py | 653 | "sbase mkchart # Create a Chart boilerplate\n" | CODE |
| MEDIUM | mcp_servers/server.py | 1466 | # Define a safe sandbox directory for cookies | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mcp_servers/server.py | 504 | Find matching elements and return structured element information. Use this tool when you need to discover how many | STRING |
| HIGH | mcp_servers/server.py | 699 | Check the current state of an element or text without waiting for the condition to become true. Use this tool w | STRING |
| HIGH | mcp_servers/server.py | 988 | Enter, append, directly set, or clear a value on a page element. Use this tool to modify text/value fields such as | STRING |
| HIGH | mcp_servers/server.py | 1424 | Manage cookies for the current browser session. Use this tool to inspect, clear, save, or restore browser cookies. | STRING |
| HIGH | mcp_servers/server.py | 1516 | Get or set a key in localStorage or sessionStorage. Use this tool when the browser workflow needs to inspect or mod | STRING |
| HIGH | mcp_servers/server.py | 1974 | Evaluate a JavaScript expression in the current page context. Use this only when the required browser operation can | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mkdocs.yml | 201 | # google_analytics: ['G-P5KFWRNLRN', 'seleniumbase.io'] | COMMENT |
| LOW | azure-pipelines.yml | 81 | #- script: python -m pytest examples/test_inspect_html.py --browser=chrome --headless -v -s --junit-xml=junit/test-res | COMMENT |
| LOW | azure-pipelines.yml | 101 | # - script: python setup.py sdist | COMMENT |
| LOW | seleniumbase/config/settings.py | 21 | # selenium.common.exceptions.TimeoutException: | COMMENT |
| LOW | seleniumbase/config/settings.py | 81 | # Called after self.goto(url), NOT driver.get(url) | COMMENT |
| LOW | seleniumbase/config/settings.py | 101 | DEFAULT_MESSAGE_DURATION = 2.55 | COMMENT |
| LOW | seleniumbase/undetected/cdp_driver/tab.py | 521 | continue | COMMENT |
| LOW | help_docs/method_summary.md | 561 | # Duplicates: | COMMENT |
| LOW | help_docs/method_summary.md | 641 | ############ | COMMENT |
| LOW | examples/custom_settings.py | 21 | COMMENT | |
| LOW | examples/custom_settings.py | 81 | # (This only affects driver downloads coming from tests.) | COMMENT |
| LOW | examples/my_first_test.py | 41 | # Here's an example of changing the "by": | COMMENT |
| LOW | examples/my_first_test.py | 61 | # useful if a web page needs additional time to load an element. | COMMENT |
| LOW | examples/my_first_test.py | 81 | # = self.wait_for_element() | COMMENT |
| LOW | examples/my_first_test.py | 101 | # self.assert_true("xkcd: volume 0" in text) | COMMENT |
| LOW | examples/my_first_test.py | 121 | # element = self.find_element("h2") | COMMENT |
| LOW | examples/my_first_test.py | 141 | # | COMMENT |
| LOW | examples/visual_testing/layout_test.py | 21 | # Now that we know the Exception was raised as expected, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/plugins/driver_manager.py | 279 | # Check if binary-location in options | COMMENT |
| LOW | seleniumbase/plugins/selenium_plugin.py | 1116 | # Check if binary-location in options | COMMENT |
| LOW | seleniumbase/plugins/sb_manager.py | 349 | # Check if binary-location in options | COMMENT |
| LOW | seleniumbase/plugins/pytest_plugin.py | 1450 | # Check if binary-location in options | COMMENT |
| LOW | seleniumbase/undetected/cdp_driver/tab.py | 539 | # Check if parent actually has a parent | COMMENT |
| LOW | seleniumbase/undetected/cdp_driver/tab.py | 622 | # Check if parent has a parent, and update it to be sure. | COMMENT |
| LOW | examples/migration/protractor/mat_paginator_test.py | 10 | # Set pagination to 5 items per page | COMMENT |
| LOW | examples/migration/protractor/mat_paginator_test.py | 23 | # Set pagination to 10 items per page | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | seleniumbase/plugins/driver_manager.py | 303 | # As a shortcut, you can use "--edge" instead of "--browser=edge", etc, | COMMENT |
| MEDIUM | seleniumbase/plugins/selenium_plugin.py | 1108 | # As a shortcut, you can use "--edge" instead of "--browser=edge", etc, | COMMENT |
| MEDIUM | seleniumbase/plugins/sb_manager.py | 373 | # As a shortcut, you can use "--edge" instead of "--browser=edge", etc, | COMMENT |
| MEDIUM | seleniumbase/plugins/pytest_plugin.py | 1500 | # As a shortcut, you can use "--edge" instead of "--browser=edge", etc, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | seleniumbase/undetected/__init__.py | 169 | debug_port = selenium.webdriver.common.service.utils.free_port() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/undetected/reactor.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/patcher.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/cdp_driver/config.py | 19 | __all__ = [ | CODE |
| LOW | seleniumbase/undetected/cdp_driver/config.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/cdp_driver/element.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/cdp_driver/browser.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/cdp_driver/cdp_util.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/cdp_driver/tab.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | seleniumbase/undetected/cdp_driver/_contradict.py | 6 | __all__ = ["cdict", "ContraDict"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | seleniumbase/utilities/selenium_ide/ReadMe.md | 11 | #### Step 1: Make a recording with the Katalon Recorder | COMMENT |
| LOW⚡ | seleniumbase/utilities/selenium_ide/ReadMe.md | 15 | #### Step 2: Export your recording as a Python 2 Webdriver script | COMMENT |
| LOW⚡ | seleniumbase/utilities/selenium_ide/ReadMe.md | 19 | #### Step 3: Run `seleniumbase convert` on your exported Python file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/core/browser_launcher.py | 3056 | CODE | |
| LOW | seleniumbase/plugins/driver_manager.py | 67 | CODE | |
| LOW | seleniumbase/plugins/sb_manager.py | 33 | CODE | |
| LOW | seleniumbase/undetected/__init__.py | 43 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/config.py | 43 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/browser.py | 109 | CODE | |
| LOW | seleniumbase/undetected/cdp_driver/cdp_util.py | 288 | CODE | |
| LOW | mcp_servers/server.py | 127 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | SKILLS.md | 18 | 10. [Scaffold a new test project](#10-scaffold-a-new-test-project) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/common/decorators.py | 26 | def my_method(): | STRING |
| LOW | seleniumbase/common/decorators.py | 89 | def my_method(): | STRING |
| LOW | examples/performance_test.py | 15 | def my_method(): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | seleniumbase/js_code/recorder_js.py | 165 | non_id_attributes.push('placeholder'); | CODE |
| LOW⚡ | seleniumbase/js_code/active_css_js.py | 165 | non_id_attributes.push('placeholder'); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | seleniumbase/undetected/cdp_driver/connection.py | 317 | # If the wait_for() fails or errors out, just pass. | COMMENT |