Repository Analysis

browser-use/browser-use

🌐 Make websites accessible for AI agents. Automate tasks online with ease.

34.2 Strong AI signal View on GitHub
34.2
Adjusted Score
34.2
Raw Score
100%
Time Factor
2026-05-26
Last Push
96,232
Stars
Python
Language
131,777
Lines of Code
463
Files
2997
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 16HIGH 133MEDIUM 439LOW 2409

Pattern Findings

2997 matches across 20 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers958 hits · 928 pts
SeverityFileLineSnippet
LOWtests/ci/test_cli_cloud.py56def test_cloud_no_args_shows_usage():
LOWtests/ci/test_cli_cloud.py64def test_cloud_login_saves_key(tmp_path: Path):
LOWtests/ci/test_cli_cloud.py83def test_cloud_logout_removes_key(tmp_path: Path):
LOWtests/ci/test_cli_cloud.py132def test_cloud_rest_post_with_body(httpserver: HTTPServer):
LOWtests/ci/test_cli_cloud.py158def test_cloud_rest_sends_auth_header(httpserver: HTTPServer):
LOWtests/ci/test_cli_cloud.py195def test_cloud_rest_no_api_key_errors(tmp_path: Path):
LOWtests/ci/test_cli_cloud.py263def test_cloud_url_construction(httpserver: HTTPServer):
LOWtests/ci/test_ai_step.py10async def test_execute_ai_step_basic():
LOWtests/ci/test_ai_step.py46async def test_execute_ai_step_with_screenshot():
LOWtests/ci/test_ai_step.py95async def test_execute_ai_step_error_handling():
LOWtests/ci/test_screenshot_exclusion.py20def test_screenshot_excluded_with_use_vision_false():
LOWtests/ci/test_screenshot_exclusion.py34def test_screenshot_excluded_with_use_vision_true():
LOWtests/ci/test_screenshot_exclusion.py48def test_screenshot_included_with_use_vision_auto():
LOWtests/ci/test_screenshot_exclusion.py62def test_screenshot_excluded_with_custom_tools_and_use_vision_false():
LOWtests/ci/test_screenshot_exclusion.py89def test_screenshot_excluded_with_custom_tools_and_use_vision_true():
LOWtests/ci/test_screenshot_exclusion.py121def test_screenshot_included_with_custom_tools_and_use_vision_auto():
LOWtests/ci/test_screenshot_exclusion.py143def test_tools_exclude_action_method():
LOWtests/ci/test_screenshot_exclusion.py158def test_exclude_action_prevents_re_registration():
LOWtests/ci/test_cli_sessions.py27def test_session_flag_parsing():
LOWtests/ci/test_cli_sessions.py34def test_session_default_is_none():
LOWtests/ci/test_cli_sessions.py40def test_sessions_command_parsing():
LOWtests/ci/test_cli_sessions.py70def test_session_name_invalid():
LOWtests/ci/test_cli_sessions.py81def test_socket_path_includes_session():
LOWtests/ci/test_cli_sessions.py86def test_pid_path_includes_session():
LOWtests/ci/test_cli_sessions.py91def test_default_session_paths():
LOWtests/ci/test_cli_sessions.py103def test_main_utils_socket_path_agreement():
LOWtests/ci/test_cli_sessions.py109def test_main_utils_pid_path_agreement():
LOWtests/ci/test_cli_sessions.py115def test_main_utils_home_dir_agreement():
LOWtests/ci/test_cli_sessions.py120def test_path_agreement_with_env_override(tmp_path, monkeypatch):
LOWtests/ci/test_cli_cloud_connect.py25def test_cloud_connect_mutual_exclusivity_cdp_url():
LOWtests/ci/test_cli_cloud_connect.py32def test_cloud_connect_mutual_exclusivity_profile():
LOWtests/ci/test_cli_cloud_connect.py39def test_cloud_connect_shows_in_usage():
LOWtests/ci/test_cli_cloud_connect.py45def test_cloud_connect_help_shows_in_epilog():
LOWtests/ci/test_action_record.py65async def test_start_stop_recording_produces_video(browser_session: BrowserSession, page_url: str, tmp_path: Path):
LOWtests/ci/test_action_record.py94async def test_start_recording_twice_raises(browser_session: BrowserSession, tmp_path: Path):
LOWtests/ci/test_action_record.py106async def test_stop_without_start_returns_none(browser_session: BrowserSession):
LOWtests/ci/test_action_record.py112async def test_on_browser_connected_degrades_gracefully_when_recording_fails(
LOWtests/ci/test_action_record.py134async def test_profile_record_video_dir_still_works(page_url: str, tmp_path: Path):
LOWtests/ci/test_action_record.py160def test_cli_argparse_record_start_stop():
LOWtests/ci/test_action_record.py180def test_cli_record_is_routed_to_browser_handler():
LOWtests/ci/test_variable_substitution.py38def test_substitute_single_variable(mock_llm):
LOWtests/ci/test_variable_substitution.py62def test_substitute_multiple_variables(mock_llm):
LOWtests/ci/test_variable_substitution.py95def test_substitute_partial_variables(mock_llm):
LOWtests/ci/test_variable_substitution.py121def test_substitute_nonexistent_variable(mock_llm):
LOWtests/ci/test_variable_substitution.py145def test_substitute_in_nested_dict(mock_llm):
LOWtests/ci/test_variable_substitution.py202def test_substitute_preserves_original_history(mock_llm):
LOWtests/ci/test_variable_substitution.py227def test_substitute_empty_variables(mock_llm):
LOWtests/ci/test_variable_substitution.py248def test_substitute_same_value_multiple_times(mock_llm):
LOWtests/ci/test_ax_name_matching.py21async def test_ax_name_matching_succeeds_when_hash_fails(httpserver):
LOWtests/ci/test_ax_name_matching.py157async def test_ax_name_matching_requires_same_node_type(httpserver):
LOWtests/ci/test_ax_name_matching.py244def test_match_level_enum_includes_ax_name():
LOWtests/ci/test_ax_name_matching.py251async def test_ax_name_matching_before_attribute_matching(httpserver):
LOWtests/ci/test_ax_name_matching.py366def test_is_menu_opener_step_detects_aria_haspopup():
LOWtests/ci/test_ax_name_matching.py408def test_is_menu_opener_step_detects_guidewire_toggle():
LOWtests/ci/test_ax_name_matching.py450def test_is_menu_opener_step_returns_false_for_regular_element():
LOWtests/ci/test_ax_name_matching.py492def test_is_menu_item_element_detects_role_menuitem():
LOWtests/ci/test_ax_name_matching.py515def test_is_menu_item_element_detects_guidewire_class():
LOWtests/ci/test_ax_name_matching.py538def test_is_menu_item_element_returns_false_for_regular_element():
LOWtests/ci/test_markdown_chunking.py16 def test_short_content_single_chunk(self):
LOWtests/ci/test_markdown_chunking.py207 def test_start_from_char_past_end_returns_empty(self):
898 more matches not shown…
Decorative Section Separators257 hits · 864 pts
SeverityFileLineSnippet
MEDIUMtests/ci/test_cli_cloud.py11# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py13# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py51# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py53# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py108# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py110# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py209# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py211# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py258# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py260# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py281# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_cloud.py283# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py22# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py24# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py60# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py62# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py76# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py78# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py98# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_cli_sessions.py100# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_action_record.py155# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_action_record.py157# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_markdown_chunking.py8# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_markdown_chunking.py10# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_markdown_chunking.py260# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_markdown_chunking.py262# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_markdown_chunking.py293# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_markdown_chunking.py295# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py44# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py46# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py64# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py66# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py88# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py90# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py111# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py113# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py134# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py136# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py152# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py154# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py172# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py174# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py189# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py191# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py205# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py207# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py223# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py225# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py255# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py257# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py266# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py268# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py282# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py284# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py297# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py299# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py316# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py318# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py332# ---------------------------------------------------------------------------
MEDIUMtests/ci/test_agent_planning.py334# ---------------------------------------------------------------------------
197 more matches not shown…
Excessive Try-Catch Wrapping698 hits · 637 pts
SeverityFileLineSnippet
LOWtests/ci/evaluate_tasks.py105 except Exception as browser_error:
LOWtests/ci/evaluate_tasks.py118 except Exception as agent_error:
LOWtests/ci/evaluate_tasks.py137 except Exception as llm_error:
LOWtests/ci/evaluate_tasks.py187 except Exception as e:
LOWtests/ci/evaluate_tasks.py191 except Exception:
LOWtests/ci/evaluate_tasks.py269 except Exception as e:
LOWtests/ci/evaluate_tasks.py356 except Exception as e:
LOWtests/ci/interactions/test_dropdown_native.py515 except Exception as e:
LOWtests/ci/models/test_azure_responses_api.py262 except Exception as e:
LOWtests/ci/browser/test_true_cross_origin_click.py133 except Exception as e:
LOWtests/ci/browser/test_cdp_headers.py74 except Exception:
LOWtests/ci/browser/test_cdp_headers.py120 except Exception:
LOWtests/ci/browser/test_cdp_headers.py164 except Exception:
LOWtests/ci/browser/test_cross_origin_click.py135 except Exception as e:
LOWtests/ci/infrastructure/test_registry_validation.py485 except Exception as e:
LOWtests/ci/infrastructure/test_registry_validation.py497 except Exception as e:
LOWtests/ci/infrastructure/test_registry_validation.py509 except Exception as e:
LOWtests/ci/infrastructure/test_registry_validation.py546 except Exception as e:
LOWtests/ci/infrastructure/test_filesystem.py210 except Exception:
LOWtests/ci/infrastructure/test_filesystem.py221 except Exception:
LOW…astructure/test_registry_action_parameter_injection.py250 except Exception as e:
LOWtests/scripts/test_frame_hierarchy.py54 except Exception:
LOWtests/scripts/test_frame_hierarchy.py123 except Exception as e:
LOWtests/scripts/test_frame_hierarchy.py139 except Exception:
LOWtests/scripts/test_frame_hierarchy.py216 except Exception as e:
LOWtests/scripts/test_frame_hierarchy.py229 except Exception:
LOWexamples/ui/gradio_demo.py77 except Exception as e:
MEDIUMexamples/features/add_image_context.py103 print(f'Error loading sample images: {e}')
LOWexamples/custom-functions/action_filters.py70 except Exception:
LOWexamples/custom-functions/cua.py52 except Exception as e:
LOWexamples/custom-functions/cua.py174 except Exception as e:
MEDIUMexamples/custom-functions/cua.py175 print(f'Error handling action {action}: {e}')
LOWexamples/custom-functions/cua.py272 except Exception as e:
LOWexamples/custom-functions/cua.py313 except Exception as e:
LOWexamples/custom-functions/file_upload.py63 except Exception as e:
LOWexamples/custom-functions/parallel_agents.py118 except Exception as e:
MEDIUMexamples/custom-functions/parallel_agents.py119 print(f'Error creating subtasks: {e}')
LOWexamples/custom-functions/parallel_agents.py186 except Exception as e:
LOWexamples/custom-functions/parallel_agents.py205 except Exception as e:
LOWexamples/custom-functions/parallel_agents.py214 except Exception as e:
LOWexamples/custom-functions/parallel_agents.py221 except Exception as e:
LOWexamples/custom-functions/parallel_agents.py238 except Exception:
LOWexamples/models/oci_models.py117 except Exception as e:
LOWexamples/models/oci_models.py149 except Exception as e:
LOWexamples/models/oci_models.py175 except Exception as e:
LOWexamples/models/oci_models.py202 except Exception as e:
LOWexamples/models/oci_models.py241 except Exception as e:
LOWexamples/models/aws.py91 except Exception as e:
LOWexamples/models/langchain/chat.py178 except Exception as e:
LOWexamples/models/langchain/chat.py190 except Exception as e:
LOWexamples/integrations/gmail_2fa_integration.py77 except Exception as e:
LOWexamples/integrations/gmail_2fa_integration.py151 except Exception as e:
LOWexamples/integrations/gmail_2fa_integration.py174 except Exception as e:
LOWexamples/integrations/gmail_2fa_integration.py264 except Exception as e:
LOWexamples/integrations/discord/discord_api.py74 except Exception as e:
MEDIUMexamples/integrations/discord/discord_api.py75 print(f'Error during bot startup: {e}')
LOWexamples/integrations/discord/discord_api.py89 except Exception as e:
MEDIUMexamples/integrations/discord/discord_api.py90 print(f'Error sending start message: {e}')
LOWexamples/integrations/discord/discord_api.py95 except Exception as e:
LOWexamples/integrations/discord/discord_api.py102 except Exception as e:
638 more matches not shown…
Cross-Language Confusion83 hits · 416 pts
SeverityFileLineSnippet
HIGHtests/scripts/debug_iframe_scrolling.py36 "evaluation_previous_goal": null,
HIGHbrowser_use/tools/service.py212 while ((match = re.exec(fullText)) !== null) {
HIGHbrowser_use/tools/service.py221 if (no.offset <= match.index && no.offset + no.length > match.index) {
HIGHbrowser_use/tools/service.py226 matches.push({
HIGHbrowser_use/tools/service.py193 if (text && text.trim()) {
HIGHbrowser_use/tools/service.py194 nodeOffsets.push({offset: fullText.length, length: text.length, node: node});
HIGHbrowser_use/tools/service.py242 while (current && current !== document.body && current !== document) {
HIGHbrowser_use/tools/service.py246 else if (current.className && typeof current.className === 'string') {
HIGHbrowser_use/tools/service.py275 if (ATTRIBUTES && ATTRIBUTES.length > 0) {
HIGHbrowser_use/tools/service.py286 if (val !== null) {
HIGHbrowser_use/tools/service.py292 results.push(item);
HIGHbrowser_use/tools/service.py926 params={'expression': 'window.scrollY || window.pageYOffset || 0'}, session_id=cdp_session.session_id
HIGHbrowser_use/tools/extraction/schema_utils.py121 # so absent fields serialize as null, not an out-of-set value.
HIGHbrowser_use/mcp/server.py945 f'(function(){{ const el = document.querySelector({json.dumps(selector)}); return el ? el.outerHTML : null; }})()'
HIGHbrowser_use/browser/profile.py1123 if (checkInitialized && initialized) {
HIGHbrowser_use/browser/profile.py1135 const result = await chrome.storage.local.get({{ settings: null }});
HIGHbrowser_use/browser/profile.py1146 if (checkInitialized && initialized) {{
HIGHbrowser_use/browser/session.py2850 const scrollX = window.pageXOffset || document.documentElement.scrollLeft || 0;
HIGHbrowser_use/browser/session.py2851 const scrollY = window.pageYOffset || document.documentElement.scrollTop || 0;
HIGHbrowser_use/browser/session.py2972 const scrollX = window.pageXOffset || document.documentElement.scrollLeft || 0;
HIGHbrowser_use/browser/session.py2973 const scrollY = window.pageYOffset || document.documentElement.scrollTop || 0;
HIGHbrowser_use/browser/demo_mode.py53 panel: null,
HIGHbrowser_use/browser/demo_mode.py54 list: null,
HIGHbrowser_use/browser/demo_mode.py57 toggleButton: null,
HIGHbrowser_use/browser/demo_mode.py93 const host = document.body || document.documentElement;
HIGHbrowser_use/browser/demo_mode.py102 if (document.body && node.parentNode !== document.body) {
HIGHbrowser_use/browser/demo_mode.py577 return saved ? Number(saved) : null;
HIGHbrowser_use/browser/demo_mode.py579 return null;
HIGHbrowser_use/browser/demo_mode.py630 if (!detail) return null;
HIGHbrowser_use/browser/demo_mode.py638 if (!entry.metadata || typeof entry.metadata !== 'object') {
HIGHbrowser_use/browser/demo_mode.py642 entry.timestamp = entry.timestamp || new Date().toISOString();
HIGHbrowser_use/browser/demo_mode.py649 state.messages.push(entry);
HIGHbrowser_use/browser/demo_mode.py717 if (id && expanded.has(id)) {
HIGHbrowser_use/browser/demo_mode.py760 frame = requestAnimationFrame(() => fn.apply(null, args));
HIGHbrowser_use/browser/watchdogs/aboutblank_watchdog.py203 const imgWidth = img.offsetWidth || 300;
HIGHbrowser_use/browser/watchdogs/aboutblank_watchdog.py204 const imgHeight = img.offsetHeight || 300;
HIGHbrowser_use/browser/watchdogs/storage_state_watchdog.py283 f' if (window.location && window.location.origin !== {json.dumps(origin_value)}) return;\n'
HIGHbrowser_use/browser/watchdogs/storage_state_watchdog.py299 f' if (window.location && window.location.origin !== {json.dumps(origin_value)}) return;\n'
HIGHbrowser_use/browser/watchdogs/dom_watchdog.py172 if (isImageUrl && loadingDuration > 3000) continue;
HIGHbrowser_use/browser/watchdogs/dom_watchdog.py174 pending.push({
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py635 if (assocLabel && (assocLabel === atPoint || assocLabel.contains(atPoint))) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py641 if (!isClickable && target.tagName === 'INPUT') {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py643 for (let i = 0; i < 3 && ancestor; i++) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py653 if (!isClickable && target.tagName === 'LABEL') {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py654 if (target.htmlFor && atPoint.tagName === 'INPUT' && atPoint.id === target.htmlFor) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py658 if (!isClickable && atPoint.tagName === 'INPUT' && target.contains(atPoint)) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py1379 } else if (this.value !== undefined) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2020 if (this.value !== undefined) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2026 if (desc && desc.set) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2122 if (element._reactInternalFiber || element._reactInternalInstance || element.__reactInternalInstance) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2141 if (element.__vue__ || element._vnode || element.__vueParentComponent) {
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2254 const doc = this.contentDocument || this.contentWindow.document;
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2256 const scrollElement = doc.documentElement || doc.body;
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2271 return {{success: false, error: e.toString()}};
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2753 null,
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2919 return null;
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py2924 if (currentDepth >= maxDepth) return null;
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py3449 })).filter(opt => opt.text || opt.value);
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py3458 return null; // Not a dropdown element
HIGH…owser_use/browser/watchdogs/default_action_watchdog.py3463 if (currentDepth >= maxDepth) return null;
23 more matches not shown…
Self-Referential Comments105 hits · 326 pts
SeverityFileLineSnippet
MEDIUMtests/ci/conftest.py47 # Create a temporary directory for test config (but not for extensions)
MEDIUMtests/ci/test_variable_substitution.py149 # Create a more complex action with nested structure
MEDIUMtests/ci/test_ax_name_matching.py39 # Create a mock LLM for summary
MEDIUMtests/ci/test_ax_name_matching.py61 # Create an element with DIFFERENT hash/xpath but SAME ax_name as the real element
MEDIUMtests/ci/test_file_system_docx.py49 # Create an external DOCX file
MEDIUMtests/ci/test_file_system_docx.py111 # Create a corrupted DOCX file
MEDIUMtests/ci/test_markdown_extractor.py62 # Create a JSON blob > 100 chars
MEDIUMtests/ci/test_file_system_images.py27 # Create an external image file
MEDIUMtests/ci/test_file_system_images.py51 # Create an external image file
MEDIUMtests/ci/test_file_system_images.py110 # Create a large image (2000x2000)
MEDIUMtests/ci/test_rerun_ai_summary.py177 # Create a mock LLM for summary
MEDIUMtests/ci/test_rerun_ai_summary.py209 # Create a step that originally had an error (using navigate action which doesn't require element matching)
MEDIUMtests/ci/test_rerun_ai_summary.py259 # Create a mock LLM for summary (will be reached after the step succeeds)
MEDIUMtests/ci/test_rerun_ai_summary.py291 # Create a step that originally had an error but uses navigate (which will work on rerun)
MEDIUMtests/ci/test_rerun_ai_summary.py460 # Create a mock LLM for summary that returns partial success
MEDIUMtests/ci/test_rerun_ai_summary.py599 # Create a mock LLM for summary
MEDIUMtests/ci/test_rerun_ai_summary.py621 # Create an interacted element that matches the button on the page
MEDIUMtests/ci/test_rerun_ai_summary.py746 # Create an interacted element
MEDIUMtests/ci/test_rerun_ai_summary.py1075 # Create a mock LLM for summary
MEDIUMtests/ci/test_rerun_ai_summary.py1097 # Create an element that matches the page
MEDIUMtests/ci/test_rerun_ai_summary.py1201 # Create an element that WON'T match (different identifiers)
MEDIUMtests/ci/test_fallback_llm.py359 # Create a failing primary and succeeding fallback
MEDIUMtests/ci/test_tools.py115 # Define a custom action
MEDIUMtests/ci/test_tools.py274 # Create a temporary directory for the file system
MEDIUMtests/ci/security/test_upload_file_containment.py158 # Create a local managed file with a basename that collides with the
MEDIUMtests/ci/security/test_domain_filtering.py13 # Create a context config with a sample allowed domain
MEDIUMtests/ci/security/test_domain_filtering.py475 # Create a list of 100 domains
MEDIUMtests/ci/security/test_domain_filtering.py502 # Create a list with 100 domains (some with www, some without)
MEDIUMtests/ci/security/test_domain_filtering.py531 # Create a large allowlist
MEDIUMtests/ci/security/test_sensitive_data.py44 # Create a simple Pydantic model with sensitive data placeholders
MEDIUMtests/ci/security/test_sensitive_data.py77 # Create a simple Pydantic model with sensitive data placeholders
MEDIUMtests/ci/browser/test_true_cross_origin_click.py39 # Create main page with TRUE cross-origin iframe pointing to example.com
MEDIUMtests/ci/browser/test_session_start.py89 # # Create a new tab explicitly
MEDIUMtests/ci/browser/test_session_start.py152 # Create a reusable profile
MEDIUMtests/ci/browser/test_session_start.py188 # Create a reusable session with keep_alive
MEDIUMtests/ci/browser/test_cross_origin_click.py48 # Create main page with iframe pointing to our test server
MEDIUMtests/ci/infrastructure/test_registry_validation.py416 # Create a custom param model for select_cell_or_range
MEDIUMtests/ci/infrastructure/test_registry_validation.py425 # Define the function without using our registry - this will be a helper function
MEDIUMtests/ci/infrastructure/test_registry_validation.py515 # Create the model instance
MEDIUMtests/ci/infrastructure/test_filesystem.py611 # Create a large file
MEDIUMtests/ci/infrastructure/test_filesystem.py711 # Create a products CSV file
MEDIUMtests/ci/infrastructure/test_filesystem.py845 # Create a file to ensure directory has content
MEDIUMtests/ci/infrastructure/test_filesystem.py923 # Create a state with unknown file type
MEDIUMtests/ci/infrastructure/test_filesystem.py1220 # Create a notes file
MEDIUM…astructure/test_registry_action_parameter_injection.py263 # Create a new tab
MEDIUM…astructure/test_registry_action_parameter_injection.py343 # Create a registry
MEDIUM…astructure/test_registry_action_parameter_injection.py370 # Create an instance with the simple_action
MEDIUMtests/scripts/debug_iframe_scrolling.py29 # Create the sequence of actions for the mock LLM
MEDIUMtests/scripts/debug_iframe_scrolling.py122 # Create an agent with the mock LLM
MEDIUMtests/scripts/debug_iframe_scrolling.py178 # Create the action model for navigation
MEDIUMexamples/features/sensitive_data.py22# Define a single credential set that can be reused
MEDIUMexamples/custom-functions/action_filters.py100 # Create the agent
MEDIUMexamples/custom-functions/file_upload.py88 # Create the agent with file upload capability
MEDIUMexamples/custom-functions/parallel_agents.py156 # Create a unique temp directory for this agent's browser data
MEDIUMexamples/custom-functions/parallel_agents.py178 # Create a new browser session for each agent with the custom profile
MEDIUMexamples/models/oci_models.py192 # Create a simple agent to test the model
MEDIUMexamples/models/langchain/example.py23 # Create a LangChain model (OpenAI)
MEDIUMexamples/models/langchain/example.py32 # Create a simple task
MEDIUMexamples/cloud/01_basic_task.py147 # Define a simple search task (using DuckDuckGo to avoid captchas)
MEDIUMexamples/getting_started/04_multi_step_task.py35 # Define a multi-step task
45 more matches not shown…
Redundant / Tautological Comments193 hits · 259 pts
SeverityFileLineSnippet
LOWtests/ci/test_ai_step.py57 # Check if any message has image content
LOWtests/ci/conftest.py131 # Check if output_format is provided (2nd argument or in kwargs)
LOWtests/ci/evaluate_tasks.py72 # Check if Google API key is available for judge LLM
LOWtests/ci/evaluate_tasks.py205 # Set environment to reduce noise in subprocess
LOWtests/ci/evaluate_tasks.py325 # Output results for GitHub Actions
LOWtests/ci/models/model_test_helper.py104 # Check if SUCCESS appears in any step (indicating button was clicked)
LOWtests/ci/browser/test_true_cross_origin_click.py81 # Check if element is from cross-origin iframe (example.com)
LOWtests/ci/browser/test_true_cross_origin_click.py97 # Check if cross-origin iframe loaded
LOWtests/ci/browser/test_screenshot.py146 # Check if browser state has screenshot path
LOWtests/ci/browser/test_dom_serializer.py162 # Check if this is an iframe tag (not content inside iframe)
LOWtests/ci/browser/test_dom_serializer.py165 # Check if element has an ID attribute
LOWtests/ci/browser/test_session_start.py292 # Check if BrowserConnectedEvent was dispatched
LOWtests/ci/browser/test_cross_origin_click.py93 # Check if element is from iframe (identified by id attributes we set)
LOWtests/ci/browser/test_cross_origin_click.py106 # Check if iframe elements were found
LOWtests/ci/infrastructure/test_filesystem.py372 # Read file with invalid name - gets auto-sanitized to invalidname.md, but file doesn't exist
LOWtests/scripts/test_frame_hierarchy.py50 # Check if target has active sessions using the public API
LOWtests/scripts/test_frame_hierarchy.py177 # Check if this should be the main frame
LOWtests/scripts/debug_iframe_scrolling.py260 # Check if lower form fields appear after scroll
LOWexamples/custom-functions/action_filters.py78 # Check if it's a login page
LOWexamples/custom-functions/cua.py340 # Check if OpenAI API key is available
LOWexamples/custom-functions/file_upload.py49 # Check if it's a file input element
LOWexamples/custom-functions/parallel_agents.py271 # Print results
LOWexamples/custom-functions/parallel_agents.py287 # Check if Google API key is available
LOWexamples/custom-functions/parallel_agents.py295 # Check if API key looks valid (Google API keys are typically 39 characters)
LOWexamples/sandbox/example.py49 # Check if API keys are set
LOWexamples/cloud/01_basic_task.py131 # Check if finished
LOW.github/workflows/eval-on-pr.yml48 # Check if trigger was was successful
LOWbrowser_use/config.py328 # Check if it's already in DB-style format
LOWbrowser_use/config.py332 # Check if the values are DB-style entries (have UUIDs as keys)
LOWbrowser_use/logging_config.py82 # Check if handlers are already set up
LOWbrowser_use/init_cmd.py172 # Check if file already exists
LOWbrowser_use/init_cmd.py182 # Write file
LOWbrowser_use/init_cmd.py354 # Write file
LOWbrowser_use/__init__.py30 # Check if the event loop is closed before calling the original
LOWbrowser_use/observability.py30# Check if we're in debug mode
LOWbrowser_use/cli.py1281 # Check if browser PID is available
LOWbrowser_use/cli.py1282 # Check if we have a CDP client
LOWbrowser_use/cli.py2240 # Check if file already exists
LOWbrowser_use/cli.py2250 # Write file
LOWbrowser_use/cli.py43 # Check if --template or -t flag is present without a value
LOWbrowser_use/cli.py116 # Write file with safety checks
LOWbrowser_use/cli.py1025 # Set flags to indicate the agent is running
LOWbrowser_use/cli.py1248 # Check if browser session has a CDP client
LOWbrowser_use/cli.py1381 # Check if agent has tasks
LOWbrowser_use/cli.py1425 # Check if this step had an error
LOWbrowser_use/cli.py1751 # Check if already authenticated
LOWbrowser_use/cli.py2045 # Check if MCP server mode is activated
LOWbrowser_use/cli.py2066 # Check if prompt mode is activated
LOWbrowser_use/cli.py2223 # Write file
LOWbrowser_use/cli.py2352 # Write file
LOWbrowser_use/utils.py341 # Set flag to indicate we're waiting for input
LOWbrowser_use/tools/service.py539 # Check if it's specifically a RuntimeError about CDP client
LOWbrowser_use/tools/service.py711 # Check if result contains validation error (e.g., trying to click <select> or file input)
LOWbrowser_use/tools/service.py842 # Check if file is in available_file_paths (user-provided or downloaded files)
LOWbrowser_use/tools/service.py855 # Check if the file is actually managed by the FileSystem service
LOWbrowser_use/tools/service.py1671 # Check if the selection was successful
LOWbrowser_use/tools/service.py2212 # Check if this is a registered action
LOWbrowser_use/tools/utils.py52 # Check if hidden
LOWbrowser_use/tools/registry/service.py107 # Check if this is a Type 1 pattern (first param is BaseModel)
LOWbrowser_use/tools/registry/service.py124 # Check if types are compatible (exact match, subclass, or generic list)
133 more matches not shown…
Deep Nesting280 hits · 226 pts
SeverityFileLineSnippet
LOWtests/ci/test_ai_step.py46
LOWtests/ci/test_ai_step.py50
LOWtests/ci/test_cli_lifecycle.py32
LOWtests/ci/evaluate_tasks.py201
LOWtests/ci/test_extract_images.py202
LOWtests/ci/test_extract_images.py250
LOWtests/ci/test_extract_images.py222
LOWtests/ci/test_extract_images.py270
LOWtests/ci/test_cli_upload.py251
LOWtests/ci/security/test_sensitive_data.py276
LOWtests/ci/security/test_sensitive_data.py368
LOWtests/ci/browser/test_true_cross_origin_click.py32
LOWtests/ci/browser/test_dom_serializer.py76
LOWtests/ci/browser/test_dom_serializer.py267
LOWtests/ci/browser/test_dom_serializer.py347
LOWtests/ci/browser/test_cdp_headers.py131
LOWtests/ci/browser/test_cross_origin_click.py32
LOWtests/scripts/test_frame_hierarchy.py12
LOWtests/scripts/debug_iframe_scrolling.py24
LOWtests/scripts/debug_iframe_scrolling.py130
LOWexamples/features/rerun_history.py58
LOWexamples/custom-functions/cua.py38
LOWexamples/custom-functions/parallel_agents.py35
LOWexamples/models/langchain/chat.py35
LOWexamples/models/langchain/chat.py100
LOWexamples/integrations/gmail_2fa_integration.py80
LOWexamples/integrations/discord/discord_api.py77
LOWexamples/integrations/slack/slack_api.py48
LOWexamples/cloud/03_structured_output.py175
LOWexamples/cloud/03_structured_output.py325
LOWexamples/cloud/04_proxy_usage.py284
LOWexamples/cloud/05_search_api.py296
LOWexamples/apps/ad-use/ad_generator.py184
LOWexamples/apps/news-use/news_monitor.py66
LOWexamples/apps/news-use/news_monitor.py251
LOWexamples/apps/news-use/news_monitor.py118
LOWexamples/apps/msg-use/scheduler.py44
LOWexamples/apps/msg-use/scheduler.py175
LOWbrowser_use/config.py370
LOWbrowser_use/logging_config.py64
LOWbrowser_use/logging_config.py95
LOWbrowser_use/init_cmd.py217
LOWbrowser_use/cli.py354
LOWbrowser_use/cli.py1728
LOWbrowser_use/cli.py879
LOWbrowser_use/cli.py1134
LOWbrowser_use/cli.py1236
LOWbrowser_use/cli.py1322
LOWbrowser_use/cli.py1375
LOWbrowser_use/utils.py34
LOWbrowser_use/utils.py392
LOWbrowser_use/utils.py418
LOWbrowser_use/utils.py497
LOWbrowser_use/utils.py599
LOWbrowser_use/utils.py614
LOWbrowser_use/utils.py393
LOWbrowser_use/utils.py421
LOWbrowser_use/utils.py395
LOWbrowser_use/utils.py423
LOWbrowser_use/tools/service.py145
220 more matches not shown…
Hallucination Indicators16 hits · 175 pts
SeverityFileLineSnippet
CRITICALbrowser_use/cli.py1387 message_history = self.agent._message_manager.state.history.get_messages()
CRITICALbrowser_use/agent/service.py2796 registered_action = self.tools.registry.registry.actions.get(action_name)
CRITICALbrowser_use/browser/session_manager.py473 await self.browser_session._cdp_client_root.send.Runtime.runIfWaitingForDebugger(session_id=session_id)
CRITICALbrowser_use/browser/session_manager.py395 await self.browser_session._cdp_client_root.send.Target.setAutoAttach(
CRITICALbrowser_use/browser/session_manager.py694 await self.browser_session._cdp_client_root.send.Target.activateTarget(params={'targetId': new_target_id})
CRITICALbrowser_use/browser/watchdogs/permissions_watchdog.py37 await self.browser_session.cdp_client.send.Browser.grantPermissions(
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py56 await self.browser_session._cdp_client_root.send.Page.enable()
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py91 self.browser_session._cdp_client_root.send.Page.handleJavaScriptDialog(
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py111 self.browser_session._cdp_client_root.send.Page.handleJavaScriptDialog(
CRITICALbrowser_use/browser/watchdogs/popups_watchdog.py134 self.browser_session._cdp_client_root.register.Page.javascriptDialogOpening(handle_dialog) # type: ignore[arg-type
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py83 self.browser_session.cdp_client.register.Page.screencastFrame(self.on_screencastFrame)
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py111 await self.browser_session.cdp_client.send.Page.stopScreencast(session_id=session_id)
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py150 await self.browser_session.cdp_client.send.Page.stopScreencast(session_id=self._current_session_id)
CRITICALbrowser_use/browser/watchdogs/recording_watchdog.py211 await self.browser_session.cdp_client.send.Page.screencastFrameAck(
CRITICALbrowser_use/browser/watchdogs/har_recording_watchdog.py178 version_info = await self.browser_session.cdp_client.send.Browser.getVersion()
CRITICALbrowser_use/browser/watchdogs/har_recording_watchdog.py393 resp = await self_ref.browser_session.cdp_client.send.Network.getResponseBody(
Verbosity Indicators113 hits · 168 pts
SeverityFileLineSnippet
LOWtests/ci/test_ax_name_matching.py81 # Step 1: Navigate to test page
LOWtests/ci/test_ax_name_matching.py104 # Step 2: Click on element that has different hash/xpath but same ax_name
LOWtests/ci/test_rerun_ai_summary.py357 # Step 1: Navigate to test page
LOWtests/ci/test_rerun_ai_summary.py380 # Step 2: Click on element that won't be found (different identifiers)
LOWtests/ci/test_rerun_ai_summary.py486 # Step 1: Navigate to test page
LOWtests/ci/test_rerun_ai_summary.py509 # Step 2: Click on element that won't exist on current page (different hash/attributes)
LOWtests/ci/test_rerun_ai_summary.py636 # Step 1: Navigate to test page
LOWtests/ci/test_rerun_ai_summary.py659 # Step 2: Click login button (first click)
LOWtests/ci/test_rerun_ai_summary.py682 # Step 3: Click login button AGAIN (redundant retry - same element, same action)
LOWtests/ci/test_rerun_ai_summary.py1112 # Step 1: Navigate to test page
LOWtests/ci/test_rerun_ai_summary.py1135 # Step 2: Click button (needs element matching, should wait for elements)
LOWtests/ci/test_rerun_ai_summary.py1216 # Step 1: Navigate
LOWtests/ci/test_rerun_ai_summary.py1234 # Step 2: Click non-matching element (will fail and retry)
LOWtests/ci/test_file_system_llm_integration.py299 # Step 1: Create external image
LOWtests/ci/test_file_system_llm_integration.py304 # Step 2: Read via FileSystem
LOWtests/ci/test_file_system_llm_integration.py310 # Step 3: Create ActionResult (simulating tools/service.py)
LOWtests/ci/test_file_system_llm_integration.py318 # Step 4: Process in MessageManager
LOWtests/ci/test_file_system_llm_integration.py328 # Step 5: Create message with AgentMessagePrompt
LOWtests/ci/test_file_system_llm_integration.py357 # Step 1: Create DOCX
LOWtests/ci/test_file_system_llm_integration.py364 # Step 2: Read it
LOWtests/ci/test_file_system_llm_integration.py367 # Step 3: Create ActionResult (simulating tools/service.py)
LOWtests/ci/test_file_system_llm_integration.py374 # Step 4: Process in MessageManager
LOWtests/ci/infrastructure/test_url_shortening.py121 # Step 1: Input processing with URL shortening
LOWtests/ci/infrastructure/test_url_shortening.py134 # Step 2: Simulate agent output with shortened URL
LOWtests/ci/infrastructure/test_url_shortening.py149 # Step 3: Output processing with URL restoration (modifies agent_output in-place)
LOWexamples/features/rerun_history.py73 # Step 1: Run the agent and save history
LOWexamples/features/rerun_history.py80 # Step 2: Detect variables in the saved history
LOWexamples/features/rerun_history.py91 # Step 3: Rerun the history with substituted values
LOWexamples/integrations/gmail_2fa_integration.py208 # Step 1: Check and validate credentials
LOWexamples/integrations/gmail_2fa_integration.py228 # Step 2: Initialize Gmail service and test authentication
LOWexamples/integrations/gmail_2fa_integration.py242 # Step 3: Initialize tools with authenticated service
LOWexamples/integrations/gmail_2fa_integration.py256 # Step 4: Test Gmail functionality
LOWexamples/integrations/gmail_2fa_integration.py278 # Step 5: Demonstrate 2FA code finding
LOWexamples/integrations/gmail_2fa_integration.py292 # Step 6: Simulate complete login flow
LOWexamples/browser/playwright_integration.py314 # Step 1: Start Chrome with CDP debugging
LOWexamples/browser/playwright_integration.py318 # Step 2: Connect Playwright to the same Chrome instance
LOWexamples/browser/playwright_integration.py321 # Step 3: Create Browser-Use session connected to same Chrome
LOWexamples/browser/playwright_integration.py324 # Step 4: Create AI agent with our custom Playwright-powered tools
LOWexamples/browser/playwright_integration.py348 # Step 5: Run the agent - it will use both Browser-Use actions and our custom Playwright actions
LOWexamples/use-cases/shopping.py25### Step 1: Navigate to the Website
LOWexamples/use-cases/shopping.py31### Step 2: Add Items to the Basket
LOWexamples/use-cases/shopping.py66### Step 3: Handling Unavailable Items
LOWexamples/use-cases/shopping.py79### Step 4: Adjusting for Minimum Order Requirement
LOWexamples/use-cases/shopping.py87### Step 5: Select Delivery Window
LOWexamples/use-cases/shopping.py93### Step 6: Checkout
LOWexamples/use-cases/shopping.py102### Step 7: Confirm Order & Output Summary
LOWexamples/cloud/01_basic_task.py153 # Step 1: Create the task
LOWexamples/cloud/01_basic_task.py156 # Step 2: Wait for completion
LOWexamples/cloud/01_basic_task.py159 # Step 3: Display results
LOWbrowser_use/cli.py711 # Step 1: Set up custom logging to RichLog
LOWbrowser_use/cli.py720 # Step 2: Set up input history
LOWbrowser_use/cli.py733 # Step 3: Focus the input field
LOWbrowser_use/cli.py743 # Step 5: Setup CDP logger and event bus listener if browser session is available
LOWbrowser_use/cli.py1670 # Step 3: Initialize Controller
LOWbrowser_use/cli.py1679 # Step 4: Get LLM
LOWbrowser_use/cli.py1632 # Step 1: Initialize BrowserSession with config
LOWbrowser_use/tools/registry/service.py92 # Step 1: Validate no **kwargs in original function signature
LOWbrowser_use/tools/registry/service.py101 # Step 2: Separate special and action parameters
LOWbrowser_use/tools/registry/service.py148 # Step 3: Create or validate param model
LOWbrowser_use/tools/registry/service.py167 # Step 4: Create normalized wrapper function
53 more matches not shown…
Unused Imports163 hits · 152 pts
SeverityFileLineSnippet
LOWtests/ci/test_action_record.py8
LOWtests/ci/test_cdp_timeout.py10
LOWtests/ci/test_cli_coordinate_click.py7
LOWtests/ci/test_cli_upload.py7
LOW…sts/ci/security/test_download_filename_sanitization.py21
LOWtests/ci/security/test_daemon_socket_perms.py10
LOWtests/ci/security/test_upload_file_containment.py18
LOWexamples/models/langchain/chat.py13
LOWbrowser_use/__init__.py48
LOWbrowser_use/__init__.py49
LOWbrowser_use/__init__.py52
LOWbrowser_use/__init__.py52
LOWbrowser_use/__init__.py52
LOWbrowser_use/__init__.py53
LOWbrowser_use/__init__.py53
LOWbrowser_use/__init__.py54
LOWbrowser_use/__init__.py55
LOWbrowser_use/__init__.py56
LOWbrowser_use/__init__.py57
LOWbrowser_use/__init__.py58
LOWbrowser_use/__init__.py59
LOWbrowser_use/__init__.py60
LOWbrowser_use/__init__.py61
LOWbrowser_use/__init__.py62
LOWbrowser_use/__init__.py63
LOWbrowser_use/__init__.py64
LOWbrowser_use/__init__.py65
LOWbrowser_use/__init__.py66
LOWbrowser_use/__init__.py67
LOWbrowser_use/__init__.py68
LOWbrowser_use/__init__.py69
LOWbrowser_use/__init__.py69
LOWbrowser_use/tools/extraction/__init__.py1
LOWbrowser_use/tools/extraction/__init__.py2
LOWbrowser_use/llm/models.py34
LOWbrowser_use/llm/__init__.py10
LOWbrowser_use/llm/__init__.py11
LOWbrowser_use/llm/__init__.py11
LOWbrowser_use/llm/__init__.py11
LOWbrowser_use/llm/__init__.py11
LOWbrowser_use/llm/__init__.py17
LOWbrowser_use/llm/__init__.py20
LOWbrowser_use/llm/__init__.py23
LOWbrowser_use/llm/__init__.py29
LOWbrowser_use/llm/__init__.py30
LOWbrowser_use/llm/__init__.py31
LOWbrowser_use/llm/__init__.py33
LOWbrowser_use/llm/__init__.py34
LOWbrowser_use/llm/__init__.py35
LOWbrowser_use/llm/__init__.py37
LOWbrowser_use/llm/__init__.py38
LOWbrowser_use/llm/__init__.py39
LOWbrowser_use/llm/__init__.py40
LOWbrowser_use/llm/__init__.py42
LOWbrowser_use/llm/__init__.py43
LOWbrowser_use/llm/oci_raw/__init__.py8
LOWbrowser_use/llm/vercel/__init__.py1
LOWbrowser_use/llm/google/__init__.py1
LOWbrowser_use/llm/deepseek/chat.py1
LOWbrowser_use/llm/deepseek/serializer.py1
103 more matches not shown…
Cross-File Repetition28 hits · 140 pts
SeverityFileLineSnippet
HIGHtests/ci/conftest.py0{ "thinking": "null", "evaluation_previous_goal": "successfully completed the task", "memory": "task completed", "next_g
HIGHtests/ci/test_fallback_llm.py0{ "thinking": "null", "evaluation_previous_goal": "successfully completed the task", "memory": "task completed", "next_g
HIGHtests/ci/test_fallback_llm.py0{ "thinking": "null", "evaluation_previous_goal": "successfully completed the task", "memory": "task completed", "next_g
HIGHtests/ci/test_tools.py0create and provide a test http server that serves static content.
HIGHtests/ci/interactions/test_dropdown_native.py0create and provide a test http server that serves static content.
HIGHtests/ci/interactions/test_dropdown_aria_menus.py0create and provide a test http server that serves static content.
HIGHtests/ci/infrastructure/test_registry_core.py0create and provide a test http server that serves static content.
HIGH…astructure/test_registry_action_parameter_injection.py0create and provide a test http server that serves static content.
HIGHtests/ci/test_tools.py0create and provide a browser instance with security disabled.
HIGHtests/ci/interactions/test_dropdown_native.py0create and provide a browser instance with security disabled.
HIGHtests/ci/interactions/test_dropdown_aria_menus.py0create and provide a browser instance with security disabled.
HIGHtests/ci/browser/test_tabs.py0{{ "thinking": "i'll start by navigating to the home page", "evaluation_previous_goal": "starting task", "memory": "navi
HIGHtests/ci/browser/test_tabs.py0{{ "thinking": "i'll start by navigating to the home page", "evaluation_previous_goal": "starting task", "memory": "navi
HIGHtests/ci/browser/test_tabs.py0{{ "thinking": "i'll start by navigating to the home page", "evaluation_previous_goal": "starting task", "memory": "navi
HIGHexamples/simple.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_us
HIGHexamples/features/judge_trace.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_us
HIGHexamples/models/bu_oss.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_us
HIGHexamples/getting_started/01_basic_search.py0setup: 1. get your api key from https://cloud.browser-use.com/new-api-key 2. set environment variable: export browser_us
HIGHexamples/features/multi_tab.py0simple try of the agent. @dev you need to add openai_api_key to your environment variables.
HIGHexamples/models/gpt-4.1.py0simple try of the agent. @dev you need to add openai_api_key to your environment variables.
HIGHexamples/models/gpt-5-mini.py0simple try of the agent. @dev you need to add openai_api_key to your environment variables.
HIGHexamples/models/openrouter.py0simple try of the agent. @dev you need to add openai_api_key to your environment variables.
HIGHbrowser_use/llm/messages.py0automatically parse the text inside content, whether it's a string or a list of content parts.
HIGHbrowser_use/llm/messages.py0automatically parse the text inside content, whether it's a string or a list of content parts.
HIGHbrowser_use/llm/messages.py0automatically parse the text inside content, whether it's a string or a list of content parts.
HIGHbrowser_use/llm/groq/serializer.py0serialize content for user messages (text and images allowed).
HIGHbrowser_use/llm/openai/responses_serializer.py0serialize content for user messages (text and images allowed).
HIGHbrowser_use/llm/openai/serializer.py0serialize content for user messages (text and images allowed).
Docstring Block Structure12 hits · 60 pts
SeverityFileLineSnippet
HIGHexamples/features/add_image_context.py21 Convert image file to base64 string. Args: image_path: Path to the image file Returns: Base64 encoded st
HIGHbrowser_use/llm/models.py90 Factory function to create LLM instances from string names with API keys from environment. Args: model_name: St
HIGHbrowser_use/agent/service.py790Generate a clean slug from skill title for action names Converts title to lowercase, removes special characters, repl
HIGHbrowser_use/browser/events.py17 Safely parse environment variable timeout values with robust error handling. Args: env_var: Environment variable n
HIGHbrowser_use/browser/session.py1421Get CDP session for a target from the event-driven pool. With autoAttach=True, sessions are created automatically by
HIGHbrowser_use/browser/session.py3802Get a CDP client attached to the target containing the specified frame. Builds a unified frame hierarchy from all tar
HIGHbrowser_use/browser/cloud/cloud.py109Stop a cloud browser session. Args: session_id: Session ID to stop. If None, uses current session. Returns:
HIGHbrowser_use/sandbox/views.py88Parse SSE event from JSON string with proper type discrimination Args: event_json: JSON string from SSE stream
HIGHbrowser_use/dom/markdown_extractor.py29Extract clean markdown from browser content using enhanced DOM tree. This unified function can extract markdown using
HIGHbrowser_use/dom/serializer/html_serializer.py249Serialize element attributes to HTML attribute string. Args: attributes: Dictionary of attribute names to values
HIGHbrowser_use/skills/service.py168Execute a skill with the provided parameters. Auto-initializes if not already initialized. Parameters are validated a
HIGHbrowser_use/skills/utils.py11Convert a list of ParameterSchema to a pydantic model for structured output Args: parameters: List of parameter sche
AI Slop Vocabulary30 hits · 52 pts
SeverityFileLineSnippet
MEDIUM.pre-commit-config.yaml59 # best practices enforcement
LOWexamples/custom-functions/action_filters.py74# Note: page_filter is not directly supported anymore, so we'll just use domains
MEDIUMexamples/browser/playwright_integration.py271 # Use Playwright's robust element selection and text extraction
MEDIUMexamples/cloud/04_proxy_usage.py285 """Demonstrate comprehensive proxy usage."""
MEDIUMexamples/cloud/05_search_api.py297 """Demonstrate comprehensive Search API usage."""
LOWbrowser_use/tools/registry/views.py157 # browser-use code doesn't use this at all, we just pass it down to your actions for convenience
LOWbrowser_use/llm/schema.py122 # No $ref, just return the optimized object
MEDIUMbrowser_use/agent/service.py3587 # Level 4: ax_name (accessible name) match - robust for dynamic SPAs with menus
MEDIUMbrowser_use/agent/service.py2058 """Log a comprehensive summary of the next action(s)"""
LOWbrowser_use/agent/views.py518 # If there are no valid sensitive data entries, just return the original value
LOWbrowser_use/agent/message_manager/service.py168 # If we have fewer items than the limit, just return all items
LOWbrowser_use/agent/message_manager/service.py583 # If there are no valid sensitive data entries, just return the original value
LOWbrowser_use/mcp/server.py183 # If we can't get parent process info, just return None
LOWbrowser_use/mcp/client.py518 # Object without properties - just return dict
LOWbrowser_use/browser/session.py3816 # If cross-origin iframes are disabled, just use the main session
MEDIUMbrowser_use/browser/watchdogs/downloads_watchdog.py706 # Download using JavaScript fetch to leverage browser cache
MEDIUMbrowser_use/browser/watchdogs/downloads_watchdog.py1268 # Download using JavaScript fetch to leverage browser cache
MEDIUMbrowser_use/browser/watchdogs/dom_watchdog.py435 # Get comprehensive page info from CDP with timeout
MEDIUMbrowser_use/browser/watchdogs/dom_watchdog.py749 """Get comprehensive page information using a single CDP call.
MEDIUM…owser_use/browser/watchdogs/default_action_watchdog.py1662 # Set the value using JavaScript with comprehensive event dispatching
MEDIUM…owser_use/browser/watchdogs/default_action_watchdog.py2073 # Execute JavaScript to trigger comprehensive event sequence
MEDIUM…owser_use/browser/watchdogs/default_action_watchdog.py3068 # Use more robust expansion: dispatch proper DOM events that trigger event listeners
MEDIUMbrowser_use/sandbox/sandbox.py305 # 4. Pickle parameters using cloudpickle for robust serialization
LOWbrowser_use/dom/views.py498 # just pass through shadow roots
MEDIUMbrowser_use/dom/serializer/eval_serializer.py12# NOTE: Removed 'id' and 'class' to force more robust structural selectors
MEDIUMbrowser_use/actor/element.py1082 """Focus element using multiple strategies with robust fallbacks."""
MEDIUMbrowser_use/actor/mouse.py86 """Scroll the page using robust CDP methods."""
MEDIUMbrowser_use/actor/playground/playground.py93 # Test element interactions with robust implementations
MEDIUMbrowser_use/actor/playground/playground.py102 # Click the link using robust click method
MEDIUMbrowser_use/tokens/service.py490 """Log a comprehensive usage summary per model with colors and nice formatting"""
Magic Placeholder Names8 hits · 40 pts
SeverityFileLineSnippet
HIGHexamples/cloud/README.md82 "api_key": "your_api_key"
HIGHexamples/apps/news-use/news_monitor.py48 print(" Then run: export GEMINI_API_KEY='your-api-key-here'")
HIGHexamples/apps/msg-use/login.py22 print("Please set it with: export GOOGLE_API_KEY='your-api-key-here'")
HIGHbrowser_use/skills/README.md15 service = SkillService(skill_ids=skill_ids, api_key='your-api-key')
HIGHskills/open-source/references/integrations.md29 "headers": { "x-browser-use-api-key": "your-api-key" }
HIGHskills/open-source/references/integrations.md42 "headers": { "x-browser-use-api-key": "your-api-key" }
HIGHskills/open-source/references/integrations.md55 "headers": { "x-browser-use-api-key": "your-api-key" }
HIGHskills/cloud/references/browser-api.md24https://connect.browser-use.com/json/version?apiKey=YOUR_API_KEY
Over-Commented Block32 hits · 26 pts
SeverityFileLineSnippet
LOWbin/lint.sh1#!/usr/bin/env bash
LOWtests/ci/browser/test_session_start.py61 # @pytest.mark.skip(reason="Race condition - DOMWatchdog tries to inject scripts into tab that's being closed")
LOWtests/ci/browser/test_session_start.py81
LOWtests/ci/browser/test_session_start.py341 # Both should complete successfully
LOWtests/ci/browser/test_session_start.py361 # ),
LOWtests/ci/browser/test_session_start.py381 # ),
LOWtests/ci/browser/test_session_start.py401 # assert browser_session._cdp_client_root is not None
LOWtests/ci/browser/test_session_start.py421 # assert browser_session._cdp_client_root is not None
LOW…astructure/test_registry_action_parameter_injection.py301 # # Add a highlight via JavaScript
LOW…astructure/test_registry_action_parameter_injection.py321 # # Call remove_highlights
LOWexamples/features/sensitive_data.py21# Advanced case: domain-specific credentials with reusable data
LOWexamples/models/cerebras_example.py41
LOWexamples/apps/ad-use/ad_generator.py221
LOW.github/workflows/claude.yml41
LOWbrowser_use/tools/service.py841 ):
LOWbrowser_use/agent/views.py641 # browser_config: BrowserConfig | None = None,
LOWbrowser_use/agent/message_manager/service.py501 # Store state message text for history
LOWbrowser_use/agent/message_manager/service.py521 # # Extract content for logging
LOWbrowser_use/browser/events.py81 ax_node=None,
LOWbrowser_use/browser/events.py341# class SetViewportEvent(BaseEvent):
LOWbrowser_use/browser/events.py661
LOWbrowser_use/browser/profile.py1041 # 'name': 'Consent-O-Matic',
LOWbrowser_use/browser/session.py1601 from browser_use.browser.watchdogs.storage_state_watchdog import StorageStateWatchdog
LOWbrowser_use/browser/session.py1681 # Initialize DefaultActionWatchdog (handles all default actions like click, type, scroll, go back, go forward, refresh
LOWbrowser_use/skill_cli/install_lite.sh1#!/usr/bin/env bash
LOWbrowser_use/skill_cli/install.sh1#!/usr/bin/env bash
LOWbrowser_use/skill_cli/install.sh21#
LOWbrowser_use/skill_cli/install.sh41# - Then delete:
LOWbrowser_use/skill_cli/install.sh61#
LOWbrowser_use/dom/serializer/clickable_elements.py161 # if node.attributes:
LOWbrowser_use/sync/service.py101 pass
LOWbrowser_use/sync/service.py121 # for line in content.splitlines():
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippet
HIGHexamples/features/rerun_history.py129 # Display AI-generated summary (last result)
HIGHexamples/models/langchain/serializer.py137 # as requested by the user
Fake / Example Data11 hits · 12 pts
SeverityFileLineSnippet
LOWtests/ci/test_variable_detection.py131 result = _detect_from_value_pattern('John Doe')
LOWtests/ci/security/test_sensitive_data.py249 'google.com': {'email': 'user@example.com', 'password': 'google_pass'},
LOWexamples/features/sensitive_data.py23company_credentials: dict[str, str] = {'telephone': '9123456789', 'email': 'user@example.com', 'name': 'John Doe'}
LOWexamples/features/sensitive_data.py23company_credentials: dict[str, str] = {'telephone': '9123456789', 'email': 'user@example.com', 'name': 'John Doe'}
LOWexamples/browser/playwright_integration.py332 - Phone: "555-9876"
LOWexamples/use-cases/apply_to_job.py30 "address": "123 Main St",
LOWbrowser_use/skill_cli/README.md328browser-use input 0 "John Doe"
LOWbrowser_use/skill_cli/commands/cloud.py252 return 'user@example.com'
LOWskills/remote-browser/SKILL.md117browser-use input 5 "user@example.com" && browser-use input 6 "password" && browser-use click 7
LOWskills/cloud/references/browser-api.md74await page.fill("#email", "user@example.com")
LOWskills/browser-use/SKILL.md163browser-use input 5 "user@example.com" && browser-use input 6 "password" && browser-use click 7
Example Usage Blocks5 hits · 7 pts
SeverityFileLineSnippet
LOWbin/setup.sh3# Usage:
LOWbin/lint.sh3# Usage:
LOWbin/test.sh3# Usage:
LOWbrowser_use/skill_cli/install_lite.sh8# Usage:
LOWbrowser_use/skill_cli/install.sh4# Usage:
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMexamples/use-cases/find_influencer_profiles.py39 # you can also use other apis like exa, xAI, perplexity, etc.
Overly Generic Function Names2 hits · 1 pts
SeverityFileLineSnippet
LOWbrowser_use/observability.py113 def my_function(param1, param2):
LOWbrowser_use/cli.py987 def run_task(self, task: str) -> None: