graph LR
Core_Infrastructure_Execution_Services["Core Infrastructure & Execution Services"]
Keyword_Action_API_Optics_Facade["Keyword Action API & Optics Facade"]
Driver_Element_Source_Engines["Driver & Element-Source Engines"]
Driver_Interface_Fallback_Strategy_Layer["Driver Interface & Fallback Strategy Layer"]
AI_Self_Healing_Natural_Language_Agent_Layer["AI Self-Healing & Natural-Language Agent Layer"]
Core_Infrastructure_Execution_Services -- "dynamically instantiates via config-driven reflection" --> Driver_Element_Source_Engines
Core_Infrastructure_Execution_Services -- "constructs and initializes" --> Keyword_Action_API_Optics_Facade
Core_Infrastructure_Execution_Services -- "calls" --> AI_Self_Healing_Natural_Language_Agent_Layer
Keyword_Action_API_Optics_Facade -- "calls" --> Core_Infrastructure_Execution_Services
Keyword_Action_API_Optics_Facade -- "calls" --> Driver_Element_Source_Engines
Keyword_Action_API_Optics_Facade -- "calls" --> Driver_Interface_Fallback_Strategy_Layer
Keyword_Action_API_Optics_Facade -- "calls" --> AI_Self_Healing_Natural_Language_Agent_Layer
Driver_Element_Source_Engines -- "calls" --> Driver_Interface_Fallback_Strategy_Layer
Driver_Element_Source_Engines -- "calls" --> AI_Self_Healing_Natural_Language_Agent_Layer
Driver_Interface_Fallback_Strategy_Layer -- "calls" --> Core_Infrastructure_Execution_Services
Driver_Interface_Fallback_Strategy_Layer -- "calls" --> Driver_Element_Source_Engines
Driver_Interface_Fallback_Strategy_Layer -- "calls" --> AI_Self_Healing_Natural_Language_Agent_Layer
AI_Self_Healing_Natural_Language_Agent_Layer -- "calls" --> Core_Infrastructure_Execution_Services
click Core_Infrastructure_Execution_Services href "./Core_Infrastructure_Execution_Services.md" "Details"
click Keyword_Action_API_Optics_Facade href "./Keyword_Action_API_Optics_Facade.md" "Details"
click Driver_Element_Source_Engines href "./Driver_Element_Source_Engines.md" "Details"
click Driver_Interface_Fallback_Strategy_Layer href "./Driver_Interface_Fallback_Strategy_Layer.md" "Details"
click AI_Self_Healing_Natural_Language_Agent_Layer href "./AI_Self_Healing_Natural_Language_Agent_Layer.md" "Details"
A self-healing, vision-powered UI test automation engine organized around a keyword-driven testing model. Test authors invoke the Optics facade through multiple interfaces (CLI, REST, Robot Framework, MCP, TUI, or Python library), which resolves keywords into calls against the Keyword Action API. UI element location is performed through a multi-tier fallback ladder (XPath → text → OCR → image) implemented via the Driver/Fallback Interface Layer, fulfilled by concrete Driver & Element-Source Engines (Appium, Selenium, Playwright). When deterministic strategies are exhausted, the AI Self-Healing & Agent Layer uses LLMs to reason over screenshots and page-source to recover failing steps or drive entire flows from natural-language instructions. Core Infrastructure & Execution Services provide configuration loading, structured error handling, JUnit reporting, REST health exposure, and the execution engine that ties test data to keyword invocation.
Core Infrastructure & Execution Services [Expand]
The shared plumbing layer providing configuration loading/merging, structured error payloads, event/notification system, JUnit result reporting, execution/runner engine, and REST/logging surface that other layers depend on.
Related Classes/Methods:
optics_framework.common.config_handler.ConfigHandler:113-225optics_framework.common.Junit_eventhandler.JUnitEventHandler:110-288optics_framework.common.error.ErrorPayload:341-349optics_framework.common.events.Command:54-61
Source Files:
optics_framework/common/Junit_eventhandler.pyoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry(L14-L74) - Classoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry.__init__(L17-L19) - Methodoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry.setup_junit_for_session(L21-L43) - Methodoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry._get_session_junit_path(L45-L56) - Methodoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry.cleanup_session(L58-L64) - Methodoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry.get_handler(L66-L69) - Methodoptics_framework.common.Junit_eventhandler.JUnitHandlerRegistry.get_active_sessions(L71-L74) - Methodoptics_framework.common.Junit_eventhandler.setup_junit(L78-L80) - Functionoptics_framework.common.Junit_eventhandler.cleanup_junit(L82-L84) - Functionoptics_framework.common.Junit_eventhandler.get_junit_handler_registry(L86-L88) - Functionoptics_framework.common.Junit_eventhandler.JUnitEventHandler(L110-L288) - Classoptics_framework.common.Junit_eventhandler.JUnitEventHandler.__init__(L111-L122) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler.on_event(L125-L150) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler._handle_test_case_event(L152-L180) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler._handle_module_event(L182-L195) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler._handle_keyword_event(L197-L223) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler._update_testcase_status(L225-L241) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler.add_detected_errors(L243-L270) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler.flush(L272-L285) - Methodoptics_framework.common.Junit_eventhandler.JUnitEventHandler.close(L287-L288) - Method
optics_framework/common/config_handler.pyoptics_framework.common.config_handler.DependencyConfig(L11-L19) - Classoptics_framework.common.config_handler.DependencyConfig.Config(L17-L19) - Classoptics_framework.common.config_handler.Config(L22-L87) - Classoptics_framework.common.config_handler.Config.__init__(L45-L77) - Methodoptics_framework.common.config_handler.Config.Config(L79-L81) - Classoptics_framework.common.config_handler.deep_merge(L89-L110) - Functionoptics_framework.common.config_handler.deep_merge._merge_dicts(L96-L107) - Functionoptics_framework.common.config_handler.ConfigHandler(L113-L225) - Classoptics_framework.common.config_handler.ConfigHandler.__init__(L123-L140) - Methodoptics_framework.common.config_handler.ConfigHandler.set_project(L142-L143) - Methodoptics_framework.common.config_handler.ConfigHandler._ensure_global_config(L146-L150) - Methodoptics_framework.common.config_handler.ConfigHandler.load(L152-L164) - Methodoptics_framework.common.config_handler.ConfigHandler.update_config(L166-L180) - Methodoptics_framework.common.config_handler.ConfigHandler._load_yaml(L183-L192) - Methodoptics_framework.common.config_handler.ConfigHandler._is_enabled(L194-L196) - Methodoptics_framework.common.config_handler.ConfigHandler._precompute_enabled_configs(L198-L206) - Methodoptics_framework.common.config_handler.ConfigHandler.get_dependency_config(L208-L215) - Methodoptics_framework.common.config_handler.ConfigHandler.get(L217-L220) - Methodoptics_framework.common.config_handler.ConfigHandler.save_config(L222-L225) - Method
optics_framework/common/error.pyoptics_framework.common.error.Category(L23-L32) - Classoptics_framework.common.error.ErrorPayload(L341-L349) - Classoptics_framework.common.error.OpticsError.to_payload(L465-L489) - Methodoptics_framework.common.error.register_error(L492-L497) - Function
optics_framework/common/events.pyoptics_framework.common.events.EventStatus(L13-L21) - Classoptics_framework.common.events.CommandType(L24-L30) - Classoptics_framework.common.events.Event(L33-L52) - Classoptics_framework.common.events.Command(L54-L61) - Classoptics_framework.common.events.EventSubscriber(L64-L68) - Classoptics_framework.common.events.EventSubscriber.on_event(L67-L68) - Methodoptics_framework.common.events.EventManager(L71-L171) - Classoptics_framework.common.events.EventManager.__init__(L73-L79) - Methodoptics_framework.common.events.EventManager.start(L81-L89) - Methodoptics_framework.common.events.EventManager.stop(L91-L97) - Methodoptics_framework.common.events.EventManager._process_events(L99-L121) - Methodoptics_framework.common.events.EventManager.publish_event(L123-L126) - Methodoptics_framework.common.events.EventManager.publish_command(L128-L135) - Methodoptics_framework.common.events.EventManager.subscribe(L137-L140) - Methodoptics_framework.common.events.EventManager.unsubscribe(L142-L145) - Methodoptics_framework.common.events.EventManager.get_command(L147-L151) - Methodoptics_framework.common.events.EventManager.dump_state(L153-L156) - Methodoptics_framework.common.events.EventManager.shutdown(L158-L171) - Methodoptics_framework.common.events.EventManagerRegistry(L174-L202) - Classoptics_framework.common.events.EventManagerRegistry.__init__(L177-L179) - Methodoptics_framework.common.events.EventManagerRegistry.get_event_manager(L181-L188) - Methodoptics_framework.common.events.EventManagerRegistry.remove_session(L190-L197) - Methodoptics_framework.common.events.EventManagerRegistry.get_active_sessions(L199-L202) - Methodoptics_framework.common.events.get_event_manager(L206-L208) - Functionoptics_framework.common.events.get_event_manager_registry(L210-L212) - Function
optics_framework/common/execution.pyoptics_framework.common.execution.ExecutionParams(L22-L31) - Classoptics_framework.common.execution.Executor(L34-L38) - Classoptics_framework.common.execution.Executor.execute(L37-L38) - Methodoptics_framework.common.execution.BatchExecutor(L41-L89) - Classoptics_framework.common.execution.BatchExecutor.__init__(L44-L48) - Methodoptics_framework.common.execution.BatchExecutor.execute(L50-L89) - Methodoptics_framework.common.execution.DryRunExecutor(L92-L129) - Classoptics_framework.common.execution.DryRunExecutor.__init__(L95-L99) - Methodoptics_framework.common.execution.DryRunExecutor.execute(L101-L129) - Methodoptics_framework.common.execution._deserialize_single_param(L132-L140) - Functionoptics_framework.common.execution._deserialize_params(L143-L160) - Functionoptics_framework.common.execution.KeywordExecutor(L163-L232) - Classoptics_framework.common.execution.KeywordExecutor.__init__(L166-L169) - Methodoptics_framework.common.execution.KeywordExecutor.execute(L171-L232) - Methodoptics_framework.common.execution.RunnerFactory(L235-L268) - Classoptics_framework.common.execution.RunnerFactory.create_runner(L238-L268) - Methodoptics_framework.common.execution._execution_event(L271-L282) - Functionoptics_framework.common.execution.ExecutionEngine(L285-L428) - Classoptics_framework.common.execution.ExecutionEngine.__init__(L288-L290) - Methodoptics_framework.common.execution.ExecutionEngine._validate_execution_params(L292-L313) - Methodoptics_framework.common.execution.ExecutionEngine._create_executor(L315-L331) - Methodoptics_framework.common.execution.ExecutionEngine._create_keyword_executor(L333-L352) - Methodoptics_framework.common.execution.ExecutionEngine._run_executor(L354-L369) - Methodoptics_framework.common.execution.ExecutionEngine._drain_events_and_shutdown(L371-L387) - Methodoptics_framework.common.execution.ExecutionEngine.execute(L389-L428) - Method
optics_framework/common/expose_api.pyoptics_framework.common.expose_api.ExecuteRequest(L124-L137) - Classoptics_framework.common.expose_api.SessionResponse(L147-L154) - Classoptics_framework.common.expose_api.ExecutionResponse(L157-L170) - Classoptics_framework.common.expose_api.TerminationResponse(L173-L178) - Classoptics_framework.common.expose_api.ExecutionEvent(L181-L188) - Classoptics_framework.common.expose_api.KeywordParameter(L196-L199) - Classoptics_framework.common.expose_api.KeywordInfo(L202-L206) - Classoptics_framework.common.expose_api._humanize_keyword(L209-L218) - Functionoptics_framework.common.expose_api._make_dependency_entry(L221-L245) - Functionoptics_framework.common.expose_api.SessionConfig(L247-L311) - Classoptics_framework.common.expose_api.SessionConfig._normalize_item(L275-L295) - Methodoptics_framework.common.expose_api.SessionConfig.normalize_sources(L297-L311) - Methodoptics_framework.common.expose_api._parse_api_data_to_model(L314-L327) - Functionoptics_framework.common.expose_api._get_keyword_parameters(L330-L351) - Functionoptics_framework.common.expose_api._extract_keywords_from_class(L353-L370) - Functionoptics_framework.common.expose_api._extract_keywords_from_module(L372-L378) - Functionoptics_framework.common.expose_api.discover_keywords(L380-L393) - Functionoptics_framework.common.expose_api._env_self_heal_defaults(L411-L424) - Functionoptics_framework.common.expose_api._resolve_self_heal_settings(L427-L446) - Functionoptics_framework.common.expose_api.create_session(L457-L544) - Functionoptics_framework.common.expose_api._normalize_param_value(L547-L579) - Functionoptics_framework.common.expose_api._resolve_named_to_positional(L582-L619) - Functionoptics_framework.common.expose_api._NamedParamsContext(L622-L629) - Classoptics_framework.common.expose_api._keyword_execution_params(L632-L641) - Functionoptics_framework.common.expose_api._should_reraise(L644-L646) - Functionoptics_framework.common.expose_api._decode_template_base64(L649-L656) - Functionoptics_framework.common.expose_api._write_bytes_to_path(L659-L662) - Functionoptics_framework.common.expose_api._safe_template_filename(L665-L678) - Functionoptics_framework.common.expose_api._build_named_param_context(L681-L714) - Functionoptics_framework.common.expose_api._build_positional_normalized(L717-L721) - Functionoptics_framework.common.expose_api._combo_to_positional_named(L724-L740) - Functionoptics_framework.common.expose_api._execute_no_params(L743-L752) - Functionoptics_framework.common.expose_api._try_combos_named(L755-L774) - Functionoptics_framework.common.expose_api._try_combos_positional(L777-L797) - Functionoptics_framework.common.expose_api._execute_keyword_with_fallback(L800-L837) - Functionoptics_framework.common.expose_api._setup_request_template_overrides(L840-L861) - Functionoptics_framework.common.expose_api._handle_execution_failure(L864-L875) - Functionoptics_framework.common.expose_api.execute_keyword(L886-L952) - Functionoptics_framework.common.expose_api.upload_template(L962-L983) - Functionoptics_framework.common.expose_api.add_session_api(L994-L1010) - Functionoptics_framework.common.expose_api.run_keyword_endpoint(L1014-L1025) - Functionoptics_framework.common.expose_api.capture_screenshot(L1029-L1034) - Functionoptics_framework.common.expose_api.get_driver_session_id(L1037-L1042) - Functionoptics_framework.common.expose_api.get_elements(L1045-L1069) - Functionoptics_framework.common.expose_api.get_pagesource(L1072-L1077) - Functionoptics_framework.common.expose_api.screen_elements(L1080-L1085) - Functionoptics_framework.common.expose_api.stream_events(L1093-L1102) - Functionoptics_framework.common.expose_api.stream_workspace(L1105-L1124) - Functionoptics_framework.common.expose_api.list_keywords(L1127-L1131) - Functionoptics_framework.common.expose_api._compute_workspace_hash(L1194-L1208) - Functionoptics_framework.common.expose_api.workspace_generator(L1210-L1267) - Functionoptics_framework.common.expose_api.event_generator(L1269-L1320) - Functionoptics_framework.common.expose_api.delete_session(L1329-L1351) - Function
optics_framework/common/logging_config.pyoptics_framework.common.logging_config.LoggingConfig(L12-L16) - Classoptics_framework.common.logging_config.LoggingManager(L19-L111) - Classoptics_framework.common.logging_config.LoggingManager.initialize_handlers(L20-L46) - Methodoptics_framework.common.logging_config.LoggingManager.stop_listeners(L48-L70) - Methodoptics_framework.common.logging_config.LoggingManager.stop_listeners.safe_stop(L49-L66) - Functionoptics_framework.common.logging_config.LoggingManager.shutdown_logging(L72-L78) - Methodoptics_framework.common.logging_config.LoggingManager.disable_logger(L80-L81) - Methodoptics_framework.common.logging_config.LoggingManager.get_internal_logger(L83-L84) - Methodoptics_framework.common.logging_config.LoggingManager.get_execution_logger(L86-L87) - Methodoptics_framework.common.logging_config.LoggingManager.get_listeners(L89-L90) - Methodoptics_framework.common.logging_config.LoggingManager.__init__(L92-L111) - Methodoptics_framework.common.logging_config.SensitiveDataFormatter(L113-L123) - Classoptics_framework.common.logging_config.SensitiveDataFormatter.format(L114-L119) - Methodoptics_framework.common.logging_config.SensitiveDataFormatter._sanitize(L121-L123) - Methodoptics_framework.common.logging_config.SessionLoggerAdapter(L132-L138) - Classoptics_framework.common.logging_config.SessionLoggerAdapter.process(L133-L138) - Methodoptics_framework.common.logging_config.LogCaptureBuffer(L140-L155) - Classoptics_framework.common.logging_config.LogCaptureBuffer.__init__(L144-L146) - Methodoptics_framework.common.logging_config.LogCaptureBuffer.emit(L148-L149) - Methodoptics_framework.common.logging_config.LogCaptureBuffer.clear(L151-L152) - Methodoptics_framework.common.logging_config.LogCaptureBuffer.get_records(L154-L155) - Methodoptics_framework.common.logging_config.LoggerContext(L159-L178) - Classoptics_framework.common.logging_config.LoggerContext.__init__(L160-L163) - Methodoptics_framework.common.logging_config.LoggerContext.__enter__(L165-L170) - Methodoptics_framework.common.logging_config.LoggerContext.__exit__(L172-L178) - Methodoptics_framework.common.logging_config.create_file_handler(L180-L188) - Functionoptics_framework.common.logging_config.initialize_handlers(L196-L200) - Functionoptics_framework.common.logging_config.shutdown_logging(L202-L211) - Functionoptics_framework.common.logging_config.disable_logger(L214-L216) - Functionoptics_framework.common.logging_config.stop_listeners(L219-L221) - Functionoptics_framework.common.logging_config.wait_for_threads(L224-L233) - Functionoptics_framework.common.logging_config.is_thread_alive(L236-L238) - Functionoptics_framework.common.logging_config.check_thread_status(L241-L246) - Functionoptics_framework.common.logging_config.flush_handlers(L248-L262) - Functionoptics_framework.common.logging_config.clear_queues(L265-L271) - Functionoptics_framework.common.logging_config.reconfigure_logging(L279-L281) - Function
optics_framework/common/models.pyoptics_framework.common.models.State(L9-L16) - Classoptics_framework.common.models.Node(L19-L25) - Classoptics_framework.common.models.KeywordNode(L28-L31) - Classoptics_framework.common.models.ModuleNode(L34-L66) - Classoptics_framework.common.models.ModuleNode.add_keyword(L38-L45) - Methodoptics_framework.common.models.ModuleNode.remove_keyword(L47-L58) - Methodoptics_framework.common.models.ModuleNode.get_keyword(L60-L66) - Methodoptics_framework.common.models.TestCaseNode(L69-L101) - Classoptics_framework.common.models.TestCaseNode.add_module(L73-L80) - Methodoptics_framework.common.models.TestCaseNode.remove_module(L82-L93) - Methodoptics_framework.common.models.TestCaseNode.get_module(L95-L101) - Methodoptics_framework.common.models.TestSuite(L104-L135) - Classoptics_framework.common.models.TestSuite.add_test_case(L107-L114) - Methodoptics_framework.common.models.TestSuite.remove_test_case(L116-L127) - Methodoptics_framework.common.models.TestSuite.get_test_case(L129-L135) - Methodoptics_framework.common.models.ModuleData(L139-L151) - Classoptics_framework.common.models.ModuleData.add_module_definition(L143-L144) - Methodoptics_framework.common.models.ModuleData.remove_module_definition(L146-L148) - Methodoptics_framework.common.models.ModuleData.get_module_definition(L150-L151) - Methodoptics_framework.common.models.RequestDefinition(L239-L243) - Classoptics_framework.common.models.ExpectedResultDefinition(L246-L250) - Classoptics_framework.common.models.ApiDefinition(L253-L258) - Classoptics_framework.common.models.ApiData(L278-L290) - Classoptics_framework.common.models.ApiData.add_collection(L282-L283) - Methodoptics_framework.common.models.ApiData.remove_collection(L285-L287) - Methodoptics_framework.common.models.ApiData.get_collection(L289-L290) - Methodoptics_framework.common.models.TemplateData(L293-L305) - Classoptics_framework.common.models.TemplateData.add_template(L297-L298) - Methodoptics_framework.common.models.TemplateData.remove_template(L300-L302) - Methodoptics_framework.common.models.ErrorDefinitions(L308-L320) - Classoptics_framework.common.models.ErrorDefinitions.add_error(L316-L317) - Methodoptics_framework.common.models.ErrorDefinitions.get_all(L319-L320) - Method
optics_framework/common/nl_agent.pyoptics_framework.common.nl_agent.KeywordSpec(L28-L32) - Class
optics_framework/common/optics_builder.pyoptics_framework.common.optics_builder.OpticsBuilder.build(L192-L201) - Method
optics_framework/common/runner/data_reader.pyoptics_framework.common.runner.data_reader.DataReader(L15-L105) - Classoptics_framework.common.runner.data_reader.DataReader.read_file(L19-L28) - Methodoptics_framework.common.runner.data_reader.DataReader.get_keyword_params(L31-L40) - Methodoptics_framework.common.runner.data_reader.DataReader.get_positional_params(L43-L51) - Methodoptics_framework.common.runner.data_reader.DataReader.is_keyword_param(L54-L66) - Methodoptics_framework.common.runner.data_reader.DataReader.read_test_cases(L69-L79) - Methodoptics_framework.common.runner.data_reader.DataReader.read_modules(L82-L92) - Methodoptics_framework.common.runner.data_reader.DataReader.read_elements(L95-L105) - Methodoptics_framework.common.runner.data_reader.CSVDataReader(L108-L226) - Classoptics_framework.common.runner.data_reader.CSVDataReader.read_file(L111-L122) - Methodoptics_framework.common.runner.data_reader.CSVDataReader.read_test_cases(L124-L144) - Methodoptics_framework.common.runner.data_reader.CSVDataReader.read_modules(L146-L176) - Methodoptics_framework.common.runner.data_reader.CSVDataReader.read_elements(L178-L207) - Methodoptics_framework.common.runner.data_reader.CSVDataReader.read_error_definitions(L209-L226) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader(L229-L431) - Classoptics_framework.common.runner.data_reader.YAMLDataReader.read_file(L232-L247) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader.read_test_cases(L249-L268) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader._parse_module_step(L270-L290) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader._process_module_steps(L292-L304) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader.read_modules(L306-L330) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader.read_elements(L332-L358) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader.read_api_data(L360-L391) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader._merge_global_defaults(L393-L399) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader._merge_collections(L401-L409) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader._merge_collection(L411-L419) - Methodoptics_framework.common.runner.data_reader.YAMLDataReader._merge_api_def(L421-L431) - Methodoptics_framework.common.runner.data_reader.merge_dicts(L434-L449) - Function
optics_framework/common/runner/keyword_register.pyoptics_framework.common.runner.keyword_register.KeywordRegistry(L5-L52) - Classoptics_framework.common.runner.keyword_register.KeywordRegistry.__init__(L13-L20) - Methodoptics_framework.common.runner.keyword_register.KeywordRegistry.register(L22-L40) - Methodoptics_framework.common.runner.keyword_register.KeywordRegistry.get_method(L42-L52) - Method
optics_framework/common/runner/printers.pyoptics_framework.common.runner.printers.TestCaseResult(L15-L21) - Classoptics_framework.common.runner.printers.KeywordResult(L24-L30) - Classoptics_framework.common.runner.printers.ModuleResult(L33-L37) - Classoptics_framework.common.runner.printers.IResultPrinter(L40-L69) - Classoptics_framework.common.runner.printers.IResultPrinter.test_state(L48-L49) - Methodoptics_framework.common.runner.printers.IResultPrinter.print_tree_log(L52-L53) - Methodoptics_framework.common.runner.printers.IResultPrinter.print_event_log(L56-L57) - Methodoptics_framework.common.runner.printers.IResultPrinter.start_live(L60-L61) - Methodoptics_framework.common.runner.printers.IResultPrinter.stop_live(L64-L65) - Methodoptics_framework.common.runner.printers.IResultPrinter.start_run(L68-L69) - Methodoptics_framework.common.runner.printers.NullResultPrinter(L72-L122) - Classoptics_framework.common.runner.printers.NullResultPrinter.__init__(L75-L76) - Methodoptics_framework.common.runner.printers.NullResultPrinter.test_state(L85-L88) - Methodoptics_framework.common.runner.printers.NullResultPrinter.print_tree_log(L90-L95) - Methodoptics_framework.common.runner.printers.NullResultPrinter.print_event_log(L97-L101) - Methodoptics_framework.common.runner.printers.NullResultPrinter.start_live(L103-L108) - Methodoptics_framework.common.runner.printers.NullResultPrinter.stop_live(L110-L115) - Methodoptics_framework.common.runner.printers.NullResultPrinter.start_run(L117-L122) - Methodoptics_framework.common.runner.printers.TerminalWidthProvider(L125-L127) - Classoptics_framework.common.runner.printers.TerminalWidthProvider.get_terminal_width(L126-L127) - Methodoptics_framework.common.runner.printers.TreeResultPrinter(L130-L246) - Classoptics_framework.common.runner.printers.TreeResultPrinter.__init__(L143-L151) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.get_instance(L154-L159) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.test_state(L166-L167) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.start_run(L169-L171) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.create_label(L173-L193) - Methodoptics_framework.common.runner.printers.TreeResultPrinter._render_tree(L195-L220) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.print_tree_log(L222-L225) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.print_event_log(L227-L233) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.start_live(L235-L241) - Methodoptics_framework.common.runner.printers.TreeResultPrinter.stop_live(L243-L246) - Method
optics_framework/common/session_manager.pyoptics_framework.common.session_manager._maybe_setup_junit(L40-L51) - Functionoptics_framework.common.session_manager.SessionHandler(L54-L72) - Classoptics_framework.common.session_manager.SessionHandler.create_session(L57-L64) - Methodoptics_framework.common.session_manager.SessionHandler.get_session(L67-L68) - Methodoptics_framework.common.session_manager.SessionHandler.terminate_session(L71-L72) - Methodoptics_framework.common.session_manager.SessionManager(L149-L185) - Classoptics_framework.common.session_manager.SessionManager.__init__(L152-L153) - Methodoptics_framework.common.session_manager.SessionManager.create_session(L155-L165) - Methodoptics_framework.common.session_manager.SessionManager.get_session(L167-L169) - Methodoptics_framework.common.session_manager.SessionManager.terminate_session(L171-L185) - Method
optics_framework/common/utils.pyoptics_framework.common.utils.unescape_csv_value(L129-L149) - Functionoptics_framework.common.utils.escape_csv_value(L152-L163) - Functionoptics_framework.common.utils._is_list_type(L803-L830) - Functionoptics_framework.common.utils._is_list_type._is_list_like(L813-L815) - Function
optics_framework/helper/autocompletion.pyoptics_framework.helper.autocompletion._render(L222-L231) - Functionoptics_framework.helper.autocompletion.write_completion_scripts(L234-L241) - Functionoptics_framework.helper.autocompletion.update_shell_rc(L243-L270) - Function
optics_framework/helper/cli.pyoptics_framework.helper.cli.Command(L17-L45) - Classoptics_framework.helper.cli.Command.register(L27-L36) - Methodoptics_framework.helper.cli.Command.execute(L38-L45) - Methodoptics_framework.helper.cli.ListCommand(L48-L56) - Classoptics_framework.helper.cli.ListCommand.register(L49-L53) - Methodoptics_framework.helper.cli.ListCommand.execute(L55-L56) - Methodoptics_framework.helper.cli.AutocompletionCommand(L58-L66) - Classoptics_framework.helper.cli.AutocompletionCommand.register(L59-L63) - Methodoptics_framework.helper.cli.AutocompletionCommand.execute(L65-L66) - Methodoptics_framework.helper.cli.GenerateArgs(L68-L80) - Classoptics_framework.helper.cli.GenerateArgs.__init__(L74-L80) - Methodoptics_framework.helper.cli.GenerateCommand(L83-L108) - Classoptics_framework.helper.cli.GenerateCommand.register(L84-L99) - Methodoptics_framework.helper.cli.GenerateCommand.execute(L101-L108) - Methodoptics_framework.helper.cli.ServerArgs(L110-L114) - Classoptics_framework.helper.cli.ServerCommand(L116-L142) - Classoptics_framework.helper.cli.ServerCommand.register(L117-L130) - Methodoptics_framework.helper.cli.ServerCommand.execute(L132-L142) - Methodoptics_framework.helper.cli.MCPArgs(L145-L149) - Classoptics_framework.helper.cli.MCPCommand(L152-L182) - Classoptics_framework.helper.cli.MCPCommand.register(L153-L167) - Methodoptics_framework.helper.cli.MCPCommand.execute(L169-L182) - Methodoptics_framework.helper.cli.ConfigCommand(L184-L190) - Classoptics_framework.helper.cli.ConfigCommand.register(L185-L187) - Methodoptics_framework.helper.cli.ConfigCommand.execute(L189-L190) - Methodoptics_framework.helper.cli.InitArgs(L193-L199) - Classoptics_framework.helper.cli.InitCommand(L202-L232) - Classoptics_framework.helper.cli.InitCommand.register(L203-L222) - Methodoptics_framework.helper.cli.InitCommand.execute(L224-L232) - Methodoptics_framework.helper.cli.DryRunArgs(L235-L239) - Classoptics_framework.helper.cli.DryRunCommand(L242-L281) - Classoptics_framework.helper.cli.DryRunCommand.register(L243-L269) - Methodoptics_framework.helper.cli.DryRunCommand.execute(L271-L281) - Methodoptics_framework.helper.cli.ExecuteArgs(L284-L288) - Classoptics_framework.helper.cli.ExecuteCommand(L291-L331) - Classoptics_framework.helper.cli.ExecuteCommand.register(L292-L318) - Methodoptics_framework.helper.cli.ExecuteCommand.execute(L320-L331) - Methodoptics_framework.helper.cli.LiveArgs(L334-L336) - Classoptics_framework.helper.cli.LiveCommand(L339-L359) - Classoptics_framework.helper.cli.LiveCommand.register(L340-L355) - Methodoptics_framework.helper.cli.LiveCommand.execute(L357-L359) - Methodoptics_framework.helper.cli.EngineInstaller(L362-L392) - Classoptics_framework.helper.cli.EngineInstaller.register(L363-L372) - Methodoptics_framework.helper.cli.EngineInstaller.execute(L374-L392) - Methodoptics_framework.helper.cli.main(L395-L448) - Function
optics_framework/helper/config_manager.pyoptics_framework.helper.config_manager.QuitConfirmScreen(L9-L24) - Classoptics_framework.helper.config_manager.QuitConfirmScreen.compose(L12-L21) - Methodoptics_framework.helper.config_manager.QuitConfirmScreen.on_button_pressed(L23-L24) - Methodoptics_framework.helper.config_manager.ErrorScreen(L27-L43) - Classoptics_framework.helper.config_manager.ErrorScreen.__init__(L30-L32) - Methodoptics_framework.helper.config_manager.ErrorScreen.compose(L34-L39) - Methodoptics_framework.helper.config_manager.ErrorScreen.on_button_pressed(L41-L43) - Methodoptics_framework.helper.config_manager.LoggerTUI(L46-L212) - Classoptics_framework.helper.config_manager.LoggerTUI.__init__(L107-L112) - Methodoptics_framework.helper.config_manager.LoggerTUI.compose(L114-L124) - Methodoptics_framework.helper.config_manager.LoggerTUI.on_mount(L126-L127) - Methodoptics_framework.helper.config_manager.LoggerTUI.get_value(L129-L134) - Methodoptics_framework.helper.config_manager.LoggerTUI.action_move_up(L136-L138) - Methodoptics_framework.helper.config_manager.LoggerTUI.action_move_down(L140-L143) - Methodoptics_framework.helper.config_manager.LoggerTUI.refresh_list(L145-L150) - Methodoptics_framework.helper.config_manager.LoggerTUI.action_edit(L152-L165) - Methodoptics_framework.helper.config_manager.LoggerTUI.on_input_submitted(L167-L168) - Methodoptics_framework.helper.config_manager.LoggerTUI.on_button_pressed(L170-L173) - Methodoptics_framework.helper.config_manager.LoggerTUI.handle_edit_confirm(L175-L197) - Methodoptics_framework.helper.config_manager.LoggerTUI.action_save(L199-L205) - Methodoptics_framework.helper.config_manager.LoggerTUI.action_quit(L207-L208) - Methodoptics_framework.helper.config_manager.LoggerTUI.handle_quit(L210-L212) - Methodoptics_framework.helper.config_manager.main(L215-L216) - Function
optics_framework/helper/execute.pyoptics_framework.helper.execute.discover_templates(L31-L51) - Functionoptics_framework.helper.execute.find_files(L54-L84) - Functionoptics_framework.helper.execute._initialize_file_collections(L87-L95) - Functionoptics_framework.helper.execute._process_yaml_file(L98-L102) - Functionoptics_framework.helper.execute._try_load_config_from_yaml(L105-L118) - Functionoptics_framework.helper.execute._is_config_file(L121-L125) - Functionoptics_framework.helper.execute._normalize_element_sources_key(L128-L132) - Functionoptics_framework.helper.execute._process_csv_file(L135-L137) - Functionoptics_framework.helper.execute._categorize_file_by_content(L140-L153) - Functionoptics_framework.helper.execute._identify_csv_content(L156-L173) - Functionoptics_framework.helper.execute._identify_yaml_content(L176-L195) - Functionoptics_framework.helper.execute._normalize_yaml_keys(L198-L207) - Functionoptics_framework.helper.execute.identify_file_content(L210-L227) - Functionoptics_framework.helper.execute.read_csv_headers(L230-L243) - Functionoptics_framework.helper.execute.validate_required_files(L246-L265) - Functionoptics_framework.helper.execute._should_include_test_case(L268-L283) - Functionoptics_framework.helper.execute.filter_test_cases(L286-L316) - Functionoptics_framework.helper.execute.categorize_test_cases(L319-L353) - Functionoptics_framework.helper.execute.get_execution_queue(L356-L384) - Functionoptics_framework.helper.execute.create_test_case_nodes(L387-L398) - Functionoptics_framework.helper.execute.populate_module_nodes(L401-L423) - Functionoptics_framework.helper.execute.load_api_data(L426-L437) - Functionoptics_framework.helper.execute.build_linked_list(L440-L467) - Functionoptics_framework.helper.execute.RunnerArgs(L469-L489) - Classoptics_framework.helper.execute.RunnerArgs.folder_path_must_exist(L478-L483) - Methodoptics_framework.helper.execute.RunnerArgs.strip_runner(L487-L489) - Methodoptics_framework.helper.execute.BaseRunner(L492-L657) - Classoptics_framework.helper.execute.BaseRunner.__init__(L495-L534) - Methodoptics_framework.helper.execute.BaseRunner._init_data_readers(L536-L538) - Methodoptics_framework.helper.execute.BaseRunner._load_test_cases(L540-L547) - Methodoptics_framework.helper.execute.BaseRunner._load_modules(L549-L559) - Methodoptics_framework.helper.execute.BaseRunner._load_elements(L561-L574) - Methodoptics_framework.helper.execute.BaseRunner._add_or_merge_element(L576-L588) - Methodoptics_framework.helper.execute.BaseRunner._load_api_data(L590-L594) - Methodoptics_framework.helper.execute.BaseRunner._load_error_definitions(L596-L601) - Methodoptics_framework.helper.execute.BaseRunner._load_templates(L603-L607) - Methodoptics_framework.helper.execute.BaseRunner._filter_and_build_execution_queue(L611-L619) - Methodoptics_framework.helper.execute.BaseRunner._setup_session(L621-L632) - Methodoptics_framework.helper.execute.BaseRunner.run(L633-L650) - Methodoptics_framework.helper.execute.BaseRunner.cleanup(L652-L657) - Methodoptics_framework.helper.execute.ExecuteRunner(L660-L663) - Classoptics_framework.helper.execute.ExecuteRunner.execute(L661-L663) - Methodoptics_framework.helper.execute.DryRunRunner(L666-L669) - Classoptics_framework.helper.execute.DryRunRunner.execute(L667-L669) - Methodoptics_framework.helper.execute.execute_main(L672-L678) - Functionoptics_framework.helper.execute.dryrun_main(L681-L687) - Function
optics_framework/helper/generate.pyoptics_framework.helper.generate.DataReader(L21-L38) - Classoptics_framework.helper.generate.DataReader.read_test_cases(L25-L26) - Methodoptics_framework.helper.generate.DataReader.read_modules(L29-L30) - Methodoptics_framework.helper.generate.DataReader.read_elements(L33-L34) - Methodoptics_framework.helper.generate.DataReader.read_config(L37-L38) - Methodoptics_framework.helper.generate.CSVDataReader(L41-L94) - Classoptics_framework.helper.generate.CSVDataReader.read_test_cases(L44-L51) - Methodoptics_framework.helper.generate.CSVDataReader.read_modules(L53-L74) - Methodoptics_framework.helper.generate.CSVDataReader._format_param_value(L76-L78) - Methodoptics_framework.helper.generate.CSVDataReader.read_elements(L80-L90) - Methodoptics_framework.helper.generate.CSVDataReader.read_elements._ensure_str_and_unescape(L82-L83) - Functionoptics_framework.helper.generate.CSVDataReader.read_config(L92-L94) - Methodoptics_framework.helper.generate.YAMLDataReader(L97-L192) - Classoptics_framework.helper.generate.YAMLDataReader.read_test_cases(L100-L111) - Methodoptics_framework.helper.generate.YAMLDataReader._parse_step(L113-L130) - Methodoptics_framework.helper.generate.YAMLDataReader.read_modules(L132-L183) - Methodoptics_framework.helper.generate.YAMLDataReader.read_elements(L185-L188) - Methodoptics_framework.helper.generate.YAMLDataReader.read_config(L190-L192) - Methodoptics_framework.helper.generate.TestFrameworkGenerator(L195-L259) - Classoptics_framework.helper.generate.TestFrameworkGenerator.__init__(L198-L233) - Methodoptics_framework.helper.generate.TestFrameworkGenerator.generate(L236-L243) - Methodoptics_framework.helper.generate.TestFrameworkGenerator._resolve_params(L245-L259) - Methodoptics_framework.helper.generate.PytestGenerator(L262-L379) - Classoptics_framework.helper.generate.PytestGenerator.generate(L265-L288) - Methodoptics_framework.helper.generate.PytestGenerator._generate_header(L290-L300) - Methodoptics_framework.helper.generate.PytestGenerator._generate_config(L302-L335) - Methodoptics_framework.helper.generate.PytestGenerator._generate_elements(L337-L342) - Methodoptics_framework.helper.generate.PytestGenerator._generate_setup(L344-L355) - Methodoptics_framework.helper.generate.PytestGenerator._generate_module_function(L357-L369) - Methodoptics_framework.helper.generate.PytestGenerator._generate_test_function(L371-L379) - Methodoptics_framework.helper.generate.RobotGenerator(L382-L520) - Classoptics_framework.helper.generate.RobotGenerator.generate(L385-L398) - Methodoptics_framework.helper.generate.RobotGenerator._generate_header(L400-L409) - Methodoptics_framework.helper.generate.RobotGenerator._transform_config_structure(L411-L437) - Methodoptics_framework.helper.generate.RobotGenerator._escape_json_for_robot(L439-L455) - Methodoptics_framework.helper.generate.RobotGenerator._generate_variables(L457-L479) - Methodoptics_framework.helper.generate.RobotGenerator._generate_test_cases(L481-L490) - Methodoptics_framework.helper.generate.RobotGenerator._generate_keywords(L492-L520) - Methodoptics_framework.helper.generate.FileWriter(L523-L577) - Classoptics_framework.helper.generate.FileWriter.write(L526-L549) - Methodoptics_framework.helper.generate.FileWriter.copy_input_templates(L551-L577) - Methodoptics_framework.helper.generate.detect_file_type(L580-L590) - Functionoptics_framework.helper.generate._detect_csv_type(L593-L605) - Functionoptics_framework.helper.generate._detect_yaml_type(L608-L622) - Functionoptics_framework.helper.generate._assign_yaml_files(L625-L637) - Functionoptics_framework.helper.generate._iter_project_files(L644-L662) - Functionoptics_framework.helper.generate.find_all_files(L665-L704) - Functionoptics_framework.helper.generate.find_files(L707-L729) - Functionoptics_framework.helper.generate.read_mixed_data(L732-L767) - Functionoptics_framework.helper.generate.generate_test_file(L770-L825) - Function
optics_framework/helper/initialize.pyoptics_framework.helper.initialize._is_junk(L11-L13) - Functionoptics_framework.helper.initialize._samples_dir(L16-L17) - Functionoptics_framework.helper.initialize.available_templates(L20-L30) - Functionoptics_framework.helper.initialize._check_and_prepare_directory(L108-L121) - Functionoptics_framework.helper.initialize._scaffold_project(L124-L140) - Functionoptics_framework.helper.initialize._copy_template(L143-L164) - Functionoptics_framework.helper.initialize.create_project(L167-L217) - Function
optics_framework/helper/live.pyoptics_framework.helper.live.ActionStatus(L75-L81) - Classoptics_framework.helper.live.NLRunStatus(L84-L90) - Classoptics_framework.helper.live.NLStepKind(L93-L98) - Classoptics_framework.helper.live.ActionResult(L111-L125) - Classoptics_framework.helper.live.NLStep(L129-L134) - Classoptics_framework.helper.live.NLSummary(L138-L145) - Classoptics_framework.helper.live.keyword_to_title(L148-L153) - Functionoptics_framework.helper.live.SaveConflictError(L156-L168) - Classoptics_framework.helper.live.SaveConflictError.__init__(L165-L168) - Methodoptics_framework.helper.live.SaveResult(L172-L183) - Classoptics_framework.helper.live._config_from_yaml(L193-L221) - Functionoptics_framework.helper.live._load_partial_config(L224-L233) - Functionoptics_framework.helper.live._has_enabled(L236-L237) - Functionoptics_framework.helper.live._enabled_drivers(L240-L247) - Functionoptics_framework.helper.live._compose_config(L250-L285) - Functionoptics_framework.helper.live.LiveController(L288-L1277) - Classoptics_framework.helper.live.LiveController.__init__(L295-L361) - Methodoptics_framework.helper.live.LiveController._setup_live_logging(L365-L403) - Methodoptics_framework.helper.live.LiveController._teardown_live_logging(L405-L420) - Methodoptics_framework.helper.live.LiveController._build_registry(L424-L433) - Methodoptics_framework.helper.live.LiveController.keyword_names(L437-L439) - Methodoptics_framework.helper.live.LiveController.keyword_signature(L441-L467) - Methodoptics_framework.helper.live.LiveController._iter_element_files(L471-L477) - Methodoptics_framework.helper.live.LiveController._merge_elements(L480-L486) - Methodoptics_framework.helper.live.LiveController.ensure_elements_loaded(L488-L504) - Methodoptics_framework.helper.live.LiveController.element_names(L506-L511) - Methodoptics_framework.helper.live.LiveController.element_first_locator(L513-L517) - Methodoptics_framework.helper.live.LiveController.run_keyword(L521-L529) - Methodoptics_framework.helper.live.LiveController._execute_line(L531-L601) - Methodoptics_framework.helper.live.LiveController._is_fallback_error(L604-L610) - Methodoptics_framework.helper.live.LiveController._run_single_combo(L612-L635) - Methodoptics_framework.helper.live.LiveController._attempt_combos(L637-L674) - Methodoptics_framework.helper.live.LiveController._build_candidates(L676-L691) - Methodoptics_framework.helper.live.LiveController._resolve_candidate(L693-L704) - Methodoptics_framework.helper.live.LiveController._find_error_log(L720-L734) - Methodoptics_framework.helper.live.LiveController._winning_strategy(L737-L748) - Methodoptics_framework.helper.live.LiveController._format_error(L751-L759) - Methodoptics_framework.helper.live.LiveController.save(L763-L839) - Methodoptics_framework.helper.live.LiveController._sanitize_name(L842-L844) - Methodoptics_framework.helper.live.LiveController._read_rows(L847-L852) - Methodoptics_framework.helper.live.LiveController._existing_names(L854-L860) - Methodoptics_framework.helper.live.LiveController._write_rows(L863-L869) - Methodoptics_framework.helper.live.LiveController._append_module_csv(L871-L895) - Methodoptics_framework.helper.live.LiveController._append_test_case_csv(L897-L906) - Methodoptics_framework.helper.live.LiveController._ensure_elements_stub(L909-L914) - Methodoptics_framework.helper.live.LiveController._enabled_driver_caps(L918-L924) - Methodoptics_framework.helper.live.LiveController._enabled_driver_name(L926-L933) - Methodoptics_framework.helper.live.LiveController._get_target_id_from_config(L935-L953) - Methodoptics_framework.helper.live.LiveController.active_target(L955-L963) - Methodoptics_framework.helper.live.LiveController.supports_device_switching(L965-L972) - Methodoptics_framework.helper.live.LiveController.supports_adb_hotplug(L974-L983) - Methodoptics_framework.helper.live.LiveController.list_android_devices(L986-L1003) - Methodoptics_framework.helper.live.LiveController.list_ios_devices(L1006-L1028) - Methodoptics_framework.helper.live.LiveController.list_devices(L1031-L1041) - Methodoptics_framework.helper.live.LiveController.switch_device(L1043-L1077) - Methodoptics_framework.helper.live.LiveController.capture_screenshot(L1081-L1097) - Methodoptics_framework.helper.live.LiveController.screenshot_png_bytes(L1099-L1108) - Methodoptics_framework.helper.live.LiveController.natural_language_available(L1112-L1120) - Methodoptics_framework.helper.live.LiveController._nl_catalog(L1122-L1126) - Methodoptics_framework.helper.live.LiveController.page_source(L1128-L1145) - Methodoptics_framework.helper.live.LiveController._nl_execute(L1147-L1155) - Methodoptics_framework.helper.live.LiveController._get_nl_agent(L1157-L1176) - Methodoptics_framework.helper.live.LiveController._nl_action_result(L1179-L1197) - Methodoptics_framework.helper.live.LiveController._emit_nl_step(L1199-L1208) - Methodoptics_framework.helper.live.LiveController.run_natural_language(L1210-L1255) - Methodoptics_framework.helper.live.LiveController.teardown(L1259-L1277) - Methodoptics_framework.helper.live._silence_console_logging(L1295-L1359) - Functionoptics_framework.helper.live._silence_console_logging._is_console_handler(L1306-L1310) - Functionoptics_framework.helper.live._redirect_stderr_fd(L1363-L1408) - Functionoptics_framework.helper.live.live_main(L1411-L1448) - Function
optics_framework/helper/live_tui.pyoptics_framework.helper.live_tui.LiveCompleter(L117-L165) - Classoptics_framework.helper.live_tui.LiveCompleter.__init__(L120-L122) - Methodoptics_framework.helper.live_tui.LiveCompleter._element_completions(L124-L134) - Methodoptics_framework.helper.live_tui.LiveCompleter._keyword_completions(L136-L153) - Methodoptics_framework.helper.live_tui.LiveCompleter.get_completions(L155-L165) - Methodoptics_framework.helper.live_tui.LiveTUI(L168-L887) - Classoptics_framework.helper.live_tui.LiveTUI.__init__(L171-L205) - Methodoptics_framework.helper.live_tui.LiveTUI._render_history(L209-L215) - Methodoptics_framework.helper.live_tui.LiveTUI._render_entry(L218-L253) - Methodoptics_framework.helper.live_tui.LiveTUI._history_cursor(L255-L257) - Methodoptics_framework.helper.live_tui.LiveTUI._ghost_text(L261-L277) - Methodoptics_framework.helper.live_tui.LiveTUI._render_status(L281-L293) - Methodoptics_framework.helper.live_tui.LiveTUI._render_overlay(L297-L306) - Methodoptics_framework.helper.live_tui.LiveTUI._overlay_cursor(L308-L309) - Methodoptics_framework.helper.live_tui.LiveTUI.open_overlay(L311-L317) - Methodoptics_framework.helper.live_tui.LiveTUI.close_overlays(L319-L322) - Methodoptics_framework.helper.live_tui.LiveTUI.open_popup(L324-L328) - Methodoptics_framework.helper.live_tui.LiveTUI._build_application(L332-L421) - Methodoptics_framework.helper.live_tui.LiveTUI._input_prefix(L423-L426) - Methodoptics_framework.helper.live_tui.LiveTUI._on_enter(L430-L439) - Methodoptics_framework.helper.live_tui.LiveTUI._on_tab(L441-L446) - Methodoptics_framework.helper.live_tui.LiveTUI._on_shift_tab(L448-L451) - Methodoptics_framework.helper.live_tui.LiveTUI._move_overlay(L453-L455) - Methodoptics_framework.helper.live_tui.LiveTUI._recall_history(L457-L463) - Methodoptics_framework.helper.live_tui.LiveTUI._on_overlay_enter(L465-L470) - Methodoptics_framework.helper.live_tui.LiveTUI._build_key_bindings(L472-L531) - Methodoptics_framework.helper.live_tui.LiveTUI._build_key_bindings._(L528-L529) - Functionoptics_framework.helper.live_tui.LiveTUI._append(L535-L537) - Methodoptics_framework.helper.live_tui.LiveTUI._info(L539-L540) - Methodoptics_framework.helper.live_tui.LiveTUI._submit(L542-L554) - Methodoptics_framework.helper.live_tui.LiveTUI._run_keyword_async(L556-L580) - Methodoptics_framework.helper.live_tui.LiveTUI._run_keyword_async.task(L562-L577) - Functionoptics_framework.helper.live_tui.LiveTUI._toggle_nl_mode(L584-L599) - Methodoptics_framework.helper.live_tui.LiveTUI._abort_nl(L601-L606) - Methodoptics_framework.helper.live_tui.LiveTUI._nl_summary_message(L609-L623) - Methodoptics_framework.helper.live_tui.LiveTUI._run_nl_async(L625-L672) - Methodoptics_framework.helper.live_tui.LiveTUI._run_nl_async.on_step(L634-L647) - Functionoptics_framework.helper.live_tui.LiveTUI._run_nl_async.on_step._apply(L643-L645) - Functionoptics_framework.helper.live_tui.LiveTUI._run_nl_async.task(L649-L669) - Functionoptics_framework.helper.live_tui.LiveTUI._handle_command(L674-L691) - Methodoptics_framework.helper.live_tui.LiveTUI._cmd_save(L693-L724) - Methodoptics_framework.helper.live_tui.LiveTUI._cmd_device(L726-L748) - Methodoptics_framework.helper.live_tui.LiveTUI._switch_device(L750-L757) - Methodoptics_framework.helper.live_tui.LiveTUI._cmd_elements(L759-L774) - Methodoptics_framework.helper.live_tui.LiveTUI._cmd_screenshot(L776-L799) - Methodoptics_framework.helper.live_tui.LiveTUI._cmd_screenshot.task(L785-L796) - Functionoptics_framework.helper.live_tui.LiveTUI._cmd_help(L801-L803) - Methodoptics_framework.helper.live_tui.LiveTUI._cmd_quit(L805-L806) - Methodoptics_framework.helper.live_tui.LiveTUI._request_quit(L808-L817) - Methodoptics_framework.helper.live_tui.LiveTUI._open_keyword_browser(L821-L824) - Methodoptics_framework.helper.live_tui.LiveTUI._pick_keyword(L826-L828) - Methodoptics_framework.helper.live_tui.LiveTUI._auto_init_device(L832-L848) - Methodoptics_framework.helper.live_tui.LiveTUI._start_device_monitor(L850-L873) - Methodoptics_framework.helper.live_tui.LiveTUI._start_device_monitor._poll_devices(L854-L858) - Functionoptics_framework.helper.live_tui.LiveTUI._start_device_monitor._monitor(L860-L871) - Functionoptics_framework.helper.live_tui.LiveTUI._on_startup(L875-L884) - Methodoptics_framework.helper.live_tui.LiveTUI.run(L886-L887) - Method
optics_framework/helper/mcp_server.pyoptics_framework.helper.mcp_server._require_fastmcp(L84-L89) - Functionoptics_framework.helper.mcp_server._http_detail(L92-L99) - Functionoptics_framework.helper.mcp_server._stringify_params(L102-L116) - Functionoptics_framework.helper.mcp_server._reflect_keyword_params(L119-L128) - Functionoptics_framework.helper.mcp_server._make_keyword_tool(L131-L195) - Functionoptics_framework.helper.mcp_server._make_keyword_tool.wrapper(L139-L158) - Functionoptics_framework.helper.mcp_server._iter_keyword_tools(L198-L212) - Functionoptics_framework.helper.mcp_server._observe(L215-L222) - Functionoptics_framework.helper.mcp_server._decode_screenshot(L225-L232) - Functionoptics_framework.helper.mcp_server.build_server(L235-L345) - Functionoptics_framework.helper.mcp_server.build_server.start_session(L241-L290) - Functionoptics_framework.helper.mcp_server.build_server.terminate_session(L292-L298) - Functionoptics_framework.helper.mcp_server.build_server.screenshot(L300-L307) - Functionoptics_framework.helper.mcp_server.build_server.keywords_catalog(L319-L321) - Functionoptics_framework.helper.mcp_server.build_server.screenshot_resource(L324-L326) - Functionoptics_framework.helper.mcp_server.build_server.page_source(L329-L331) - Functionoptics_framework.helper.mcp_server.build_server.interactive_elements(L334-L336) - Functionoptics_framework.helper.mcp_server.build_server.screen_elements(L341-L343) - Functionoptics_framework.helper.mcp_server.run_mcp_server(L348-L368) - Function
optics_framework/helper/serve.pyoptics_framework.helper.serve._apply_optics_logging_to_uvicorn(L12-L55) - Functionoptics_framework.helper.serve.run_uvicorn_server(L58-L104) - Function
optics_framework/helper/setup.pyoptics_framework.helper.setup.SetupError(L17-L20) - Classoptics_framework.helper.setup.EngineBackend(L23-L33) - Classoptics_framework.helper.setup.EngineCategory(L36-L38) - Classoptics_framework.helper.setup.InstallRequest(L41-L47) - Classoptics_framework.helper.setup._norm(L104-L105) - Functionoptics_framework.helper.setup._split_token(L112-L121) - Functionoptics_framework.helper.setup._validate_spec(L124-L134) - Functionoptics_framework.helper.setup._alias_index(L137-L145) - Functionoptics_framework.helper.setup._add_request(L148-L166) - Functionoptics_framework.helper.setup._resolve_token(L169-L196) - Functionoptics_framework.helper.setup.resolve_engines(L199-L218) - Functionoptics_framework.helper.setup.EngineInstallerApp(L221-L324) - Classoptics_framework.helper.setup.EngineInstallerApp.__init__(L243-L245) - Methodoptics_framework.helper.setup.EngineInstallerApp.compose(L247-L269) - Methodoptics_framework.helper.setup.EngineInstallerApp.on_checkbox_changed(L271-L285) - Methodoptics_framework.helper.setup.EngineInstallerApp.on_button_pressed(L287-L291) - Methodoptics_framework.helper.setup.EngineInstallerApp.install_engines(L293-L308) - Methodoptics_framework.helper.setup.EngineInstallerApp._install_worker(L311-L314) - Methodoptics_framework.helper.setup.EngineInstallerApp._on_install_finished(L316-L324) - Methodoptics_framework.helper.setup._installed_version(L327-L331) - Functionoptics_framework.helper.setup.install_extras(L334-L383) - Functionoptics_framework.helper.setup.list_engines(L386-L399) - Function
optics_framework/optics.pyoptics_framework.optics.Optics.discover_templates(L336-L356) - Methodoptics_framework.optics.Optics._initialize_session_and_keywords(L358-L393) - Methodoptics_framework.optics.Optics.add_error_definitions(L524-L563) - Method
Keyword Action API & Optics Facade [Expand]
The primary keyword-driven API surface that test authors call — the Optics top-level facade plus ActionKeyword, AppManagement, and Verifier keyword implementations that perform UI actions, app lifecycle control, and assertions.
Related Classes/Methods:
optics_framework.optics.Optics:147-1307optics_framework.api.action_keyword.ActionKeyword:182-1178optics_framework.api.app_management.AppManagement:7-96optics_framework.api.verifier.Verifier:11-369
Source Files:
optics_framework/api/action_keyword.pyoptics_framework.api.action_keyword._parse_aoi_param(L37-L40) - Functionoptics_framework.api.action_keyword._maybe_save_aoi_screenshot(L43-L50) - Functionoptics_framework.api.action_keyword._locate_element(L53-L62) - Functionoptics_framework.api.action_keyword._save_annotated_for_result(L65-L99) - Functionoptics_framework.api.action_keyword._bounds_area(L102-L113) - Functionoptics_framework.api.action_keyword._find_dropdown_container(L116-L135) - Functionoptics_framework.api.action_keyword._raise_option_not_found(L138-L151) - Functionoptics_framework.api.action_keyword._HealProviders(L154-L179) - Classoptics_framework.api.action_keyword._HealProviders.__init__(L161-L163) - Methodoptics_framework.api.action_keyword._HealProviders.screenshot(L165-L172) - Methodoptics_framework.api.action_keyword._HealProviders.pagesource(L174-L179) - Methodoptics_framework.api.action_keyword.ActionKeyword(L182-L1178) - Classoptics_framework.api.action_keyword.ActionKeyword.__init__(L192-L228) - Methodoptics_framework.api.action_keyword.ActionKeyword._record_successful_step(L230-L231) - Methodoptics_framework.api.action_keyword.ActionKeyword._ai_self_heal(L233-L269) - Methodoptics_framework.api.action_keyword.ActionKeyword._ai_self_heal_ready(L271-L275) - Methodoptics_framework.api.action_keyword.ActionKeyword._log_heal_outcome(L277-L309) - Methodoptics_framework.api.action_keyword.ActionKeyword._render_heal_step(L312-L314) - Methodoptics_framework.api.action_keyword.ActionKeyword._pop_last_heal_info(L316-L323) - Methodoptics_framework.api.action_keyword.ActionKeyword._heal_execute(L327-L360) - Methodoptics_framework.api.action_keyword.ActionKeyword._heal_catalog(L362-L367) - Methodoptics_framework.api.action_keyword.ActionKeyword._heal_keyword_signature(L370-L387) - Methodoptics_framework.api.action_keyword.ActionKeyword._capture_screenshot_safe(L389-L395) - Methodoptics_framework.api.action_keyword.ActionKeyword._save_screenshot_if_available(L397-L400) - Methodoptics_framework.api.action_keyword.ActionKeyword._locate_and_act(L402-L440) - Methodoptics_framework.api.action_keyword.ActionKeyword._act_until_success(L442-L496) - Methodoptics_framework.api.action_keyword.ActionKeyword.press_element(L499-L531) - Methodoptics_framework.api.action_keyword.ActionKeyword.press_element.act(L517-L526) - Functionoptics_framework.api.action_keyword.ActionKeyword.press_by_percentage(L533-L546) - Methodoptics_framework.api.action_keyword.ActionKeyword.press_by_coordinates(L548-L560) - Methodoptics_framework.api.action_keyword.ActionKeyword.detect_and_press(L563-L581) - Methodoptics_framework.api.action_keyword.ActionKeyword.press_checkbox(L583-L600) - Methodoptics_framework.api.action_keyword.ActionKeyword.press_radio_button(L602-L619) - Methodoptics_framework.api.action_keyword.ActionKeyword.select_dropdown_option(L621-L667) - Methodoptics_framework.api.action_keyword.ActionKeyword._find_option_element(L669-L682) - Methodoptics_framework.api.action_keyword.ActionKeyword._safe_get_interactive_elements(L684-L694) - Methodoptics_framework.api.action_keyword.ActionKeyword._safe_pagesource_hash(L696-L707) - Methodoptics_framework.api.action_keyword.ActionKeyword._scroll_dropdown_until_found(L709-L748) - Methodoptics_framework.api.action_keyword.ActionKeyword.swipe(L751-L764) - Methodoptics_framework.api.action_keyword.ActionKeyword.swipe_by_percentage(L766-L779) - Methodoptics_framework.api.action_keyword.ActionKeyword.swipe_seekbar_to_right_android(L781-L795) - Methodoptics_framework.api.action_keyword.ActionKeyword.swipe_until_element_appears(L797-L823) - Methodoptics_framework.api.action_keyword.ActionKeyword.swipe_from_element(L825-L854) - Methodoptics_framework.api.action_keyword.ActionKeyword.swipe_from_element.act(L841-L849) - Functionoptics_framework.api.action_keyword.ActionKeyword.scroll(L856-L866) - Methodoptics_framework.api.action_keyword.ActionKeyword.scroll_until_element_appears(L868-L897) - Methodoptics_framework.api.action_keyword.ActionKeyword.scroll_from_element(L899-L928) - Methodoptics_framework.api.action_keyword.ActionKeyword.scroll_from_element.act(L915-L923) - Functionoptics_framework.api.action_keyword.ActionKeyword.enter_text(L931-L962) - Methodoptics_framework.api.action_keyword.ActionKeyword.enter_text.act(L949-L957) - Functionoptics_framework.api.action_keyword.ActionKeyword.enter_text_direct(L964-L977) - Methodoptics_framework.api.action_keyword.ActionKeyword.enter_text_using_keyboard(L979-L999) - Methodoptics_framework.api.action_keyword.ActionKeyword.enter_number(L1001-L1028) - Methodoptics_framework.api.action_keyword.ActionKeyword.enter_number.act(L1015-L1023) - Functionoptics_framework.api.action_keyword.ActionKeyword.press_keycode(L1030-L1044) - Methodoptics_framework.api.action_keyword.ActionKeyword.clear_element_text(L1047-L1074) - Methodoptics_framework.api.action_keyword.ActionKeyword.clear_element_text.act(L1060-L1069) - Functionoptics_framework.api.action_keyword.ActionKeyword.get_text(L1076-L1101) - Methodoptics_framework.api.action_keyword.ActionKeyword.get_text.act(L1089-L1096) - Functionoptics_framework.api.action_keyword.ActionKeyword.sleep(L1103-L1109) - Methodoptics_framework.api.action_keyword.ActionKeyword._parse_script_and_args(L1111-L1146) - Methodoptics_framework.api.action_keyword.ActionKeyword.execute_script(L1148-L1178) - Method
optics_framework/api/app_management.pyoptics_framework.api.app_management.AppManagement(L7-L96) - Classoptics_framework.api.app_management.AppManagement.__init__(L18-L21) - Methodoptics_framework.api.app_management.AppManagement.initialise_setup(L25-L35) - Methodoptics_framework.api.app_management.AppManagement.launch_app(L37-L47) - Methodoptics_framework.api.app_management.AppManagement.start_appium_session(L49-L55) - Methodoptics_framework.api.app_management.AppManagement.get_driver_session_id(L57-L59) - Methodoptics_framework.api.app_management.AppManagement.launch_other_app(L61-L68) - Methodoptics_framework.api.app_management.AppManagement.close_and_terminate_app(L70-L79) - Methodoptics_framework.api.app_management.AppManagement.force_terminate_app(L81-L88) - Methodoptics_framework.api.app_management.AppManagement.get_app_version(L90-L96) - Method
optics_framework/api/verifier.pyoptics_framework.api.verifier.Verifier(L11-L369) - Classoptics_framework.api.verifier.Verifier.__init__(L16-L27) - Methodoptics_framework.api.verifier.Verifier.validate_element(L29-L46) - Methodoptics_framework.api.verifier.Verifier.is_element(L48-L103) - Methodoptics_framework.api.verifier.Verifier._resolve_param(L105-L107) - Methodoptics_framework.api.verifier.Verifier.assert_equality(L109-L124) - Methodoptics_framework.api.verifier.Verifier.assert_presence(L127-L137) - Methodoptics_framework.api.verifier.Verifier.assert_visibility(L139-L151) - Methodoptics_framework.api.verifier.Verifier._assert_common(L153-L170) - Methodoptics_framework.api.verifier.Verifier._group_elements_by_type(L172-L178) - Methodoptics_framework.api.verifier.Verifier._process_element_groups(L180-L196) - Methodoptics_framework.api.verifier.Verifier._save_annotated_screenshot(L198-L205) - Methodoptics_framework.api.verifier.Verifier._evaluate_rule(L207-L209) - Methodoptics_framework.api.verifier.Verifier._handle_result(L211-L217) - Methodoptics_framework.api.verifier.Verifier._capture_success_event(L219-L223) - Methodoptics_framework.api.verifier.Verifier.validate_screen(L226-L245) - Methodoptics_framework.api.verifier.Verifier.capture_screenshot(L247-L265) - Methodoptics_framework.api.verifier.Verifier.capture_pagesource(L268-L284) - Methodoptics_framework.api.verifier.Verifier._safe_capture_screenshot_np(L286-L296) - Methodoptics_framework.api.verifier.Verifier._bounds_need_screenshot(L298-L306) - Methodoptics_framework.api.verifier.Verifier._collect_interactive_elements(L308-L329) - Methodoptics_framework.api.verifier.Verifier.get_interactive_elements(L331-L346) - Methodoptics_framework.api.verifier.Verifier.get_screen_elements(L348-L369) - Method
optics_framework/common/ai_self_heal.pyoptics_framework.common.ai_self_heal.KeywordExecResult(L35-L44) - Classoptics_framework.common.ai_self_heal.HealKeywordSpec(L53-L56) - Classoptics_framework.common.ai_self_heal.HealContext(L72-L80) - Class
optics_framework/common/base_factory.pyoptics_framework.common.base_factory.GenericFactory(L14-L204) - Classoptics_framework.common.base_factory.GenericFactory.ModuleRegistry(L15-L21) - Classoptics_framework.common.base_factory.GenericFactory.ModuleRegistry.Config(L20-L21) - Classoptics_framework.common.base_factory.GenericFactory.register_package(L26-L31) - Methodoptics_framework.common.base_factory.GenericFactory._load_package(L34-L41) - Methodoptics_framework.common.base_factory.GenericFactory._register_submodules(L44-L51) - Methodoptics_framework.common.base_factory.GenericFactory._register_subpackage(L54-L61) - Methodoptics_framework.common.base_factory.GenericFactory._locate_implementation(L64-L69) - Methodoptics_framework.common.base_factory.GenericFactory.create_instance_dynamic(L72-L112) - Methodoptics_framework.common.base_factory.GenericFactory.create_instance(L115-L119) - Methodoptics_framework.common.base_factory.GenericFactory._create_or_retrieve(L122-L158) - Methodoptics_framework.common.base_factory.GenericFactory._load_module(L161-L171) - Methodoptics_framework.common.base_factory.GenericFactory._extract_names(L174-L188) - Methodoptics_framework.common.base_factory.GenericFactory._create_fallback(L191-L198) - Methodoptics_framework.common.base_factory.GenericFactory.clear_instances(L201-L204) - Methodoptics_framework.common.base_factory.InstanceFallback(L207-L252) - Classoptics_framework.common.base_factory.InstanceFallback.Config(L212-L213) - Classoptics_framework.common.base_factory.InstanceFallback.__init__(L215-L217) - Methodoptics_framework.common.base_factory.InstanceFallback.active_instance(L220-L229) - Methodoptics_framework.common.base_factory.InstanceFallback.__getattr__(L231-L252) - Methodoptics_framework.common.base_factory.InstanceFallback.__getattr__.fallback_method(L232-L251) - Function
optics_framework/common/config_handler.pyoptics_framework.common.config_handler.Config.get(L83-L87) - Method
optics_framework/common/elementsource_interface.pyoptics_framework.common.elementsource_interface.ElementSourceInterface(L5-L134) - Classoptics_framework.common.elementsource_interface.ElementSourceInterface.capture(L18-L25) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.capture_screenshot_bytes(L27-L41) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.locate(L44-L53) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.assert_elements(L56-L70) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.get_element_bboxes(L72-L81) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.get_bbox_for_element(L83-L92) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.get_page_source(L94-L104) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.assert_elements_visible(L106-L122) - Methodoptics_framework.common.elementsource_interface.ElementSourceInterface.get_interactive_elements(L125-L134) - Method
optics_framework/common/error_detection.pyoptics_framework.common.error_detection.extract_visible_text(L35-L77) - Functionoptics_framework.common.error_detection.detect_errors_in_text(L80-L119) - Function
optics_framework/common/execution_tracer.pyoptics_framework.common.execution_tracer.ExecutionTracer(L4-L32) - Classoptics_framework.common.execution_tracer.ExecutionTracer.log_attempt(L10-L32) - Method
optics_framework/common/expose_api.pyoptics_framework.common.expose_api.AppiumUpdateRequest(L114-L121) - Classoptics_framework.common.expose_api.TemplateUploadRequest(L140-L144) - Classoptics_framework.common.expose_api._empty_workspace_data(L1134-L1143) - Functionoptics_framework.common.expose_api._capture_source_safe(L1146-L1153) - Functionoptics_framework.common.expose_api._gather_workspace_data(L1156-L1192) - Function
optics_framework/common/factories.pyoptics_framework.common.factories.DeviceFactory(L11-L28) - Classoptics_framework.common.factories.DeviceFactory.get_driver(L15-L28) - Methodoptics_framework.common.factories.ElementSourceFactory(L31-L79) - Classoptics_framework.common.factories.ElementSourceFactory.get_driver(L35-L49) - Methodoptics_framework.common.factories.ElementSourceFactory._load_element_source_implementation(L52-L58) - Methodoptics_framework.common.factories.ElementSourceFactory._find_matching_driver(L61-L71) - Methodoptics_framework.common.factories.ElementSourceFactory._build_driver_kwargs(L74-L79) - Methodoptics_framework.common.factories.ImageFactory(L82-L88) - Classoptics_framework.common.factories.ImageFactory.get_driver(L86-L88) - Methodoptics_framework.common.factories.TextFactory(L91-L97) - Classoptics_framework.common.factories.TextFactory.get_driver(L95-L97) - Methodoptics_framework.common.factories.LLMFactory(L100-L106) - Classoptics_framework.common.factories.LLMFactory.get_driver(L104-L106) - Method
optics_framework/common/image_interface.pyoptics_framework.common.image_interface.ImageInterface(L5-L71) - Classoptics_framework.common.image_interface.ImageInterface.element_exist(L18-L35) - Methodoptics_framework.common.image_interface.ImageInterface.find_element(L38-L57) - Methodoptics_framework.common.image_interface.ImageInterface.assert_elements(L60-L71) - Method
optics_framework/common/models.pyoptics_framework.common.models.TemplateData.get_template_path(L304-L305) - Method
optics_framework/common/optics_builder.pyoptics_framework.common.optics_builder.OpticsConfig(L21-L28) - Classoptics_framework.common.optics_builder.OpticsBuilder(L31-L201) - Classoptics_framework.common.optics_builder.OpticsBuilder.__init__(L36-L42) - Methodoptics_framework.common.optics_builder.OpticsBuilder.normalise_config(L44-L67) - Methodoptics_framework.common.optics_builder.OpticsBuilder.add_driver(L70-L72) - Methodoptics_framework.common.optics_builder.OpticsBuilder.add_element_source(L74-L78) - Methodoptics_framework.common.optics_builder.OpticsBuilder.add_image_detection(L80-L94) - Methodoptics_framework.common.optics_builder.OpticsBuilder.add_text_detection(L96-L106) - Methodoptics_framework.common.optics_builder.OpticsBuilder.add_llm(L108-L112) - Methodoptics_framework.common.optics_builder.OpticsBuilder.instantiate_driver(L115-L124) - Methodoptics_framework.common.optics_builder.OpticsBuilder.instantiate_element_source(L126-L136) - Methodoptics_framework.common.optics_builder.OpticsBuilder.instantiate_image_detection(L138-L146) - Methodoptics_framework.common.optics_builder.OpticsBuilder.instantiate_text_detection(L148-L156) - Methodoptics_framework.common.optics_builder.OpticsBuilder.instantiate_llm(L158-L164) - Methodoptics_framework.common.optics_builder.OpticsBuilder.get_driver(L167-L170) - Methodoptics_framework.common.optics_builder.OpticsBuilder.get_element_source(L172-L175) - Methodoptics_framework.common.optics_builder.OpticsBuilder.get_image_detection(L177-L180) - Methodoptics_framework.common.optics_builder.OpticsBuilder.get_text_detection(L182-L185) - Methodoptics_framework.common.optics_builder.OpticsBuilder.get_llm(L187-L190) - Method
optics_framework/common/screenshot_stream.pyoptics_framework.common.screenshot_stream.ScreenshotStream(L9-L247) - Classoptics_framework.common.screenshot_stream.ScreenshotStream.__init__(L10-L28) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.capture_stream(L30-L61) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream._process_frame_for_deduplication(L63-L83) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.process_screenshot_queue(L85-L112) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.start_capture(L114-L133) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.stop_capture(L135-L162) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.get_latest_screenshot(L164-L177) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.get_all_available_screenshots(L179-L197) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.fetch_frames_from_queue(L200-L217) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.clear_queues(L219-L235) - Methodoptics_framework.common.screenshot_stream.ScreenshotStream.get_queue_sizes(L237-L247) - Method
optics_framework/common/session_manager.pyoptics_framework.common.session_manager._to_dict_list(L18-L26) - Functionoptics_framework.common.session_manager._get_enabled_config_list(L29-L37) - Functionoptics_framework.common.session_manager.SessionTemplateResolver(L75-L97) - Classoptics_framework.common.session_manager.SessionTemplateResolver.__init__(L82-L83) - Methodoptics_framework.common.session_manager.SessionTemplateResolver.get_template_path(L85-L97) - Methodoptics_framework.common.session_manager.Session(L100-L146) - Classoptics_framework.common.session_manager.Session.__init__(L103-L146) - Method
optics_framework/common/strategies.pyoptics_framework.common.strategies.LocateValueWithFrame(L20-L23) - Classoptics_framework.common.strategies.LocatorStrategy(L26-L151) - Classoptics_framework.common.strategies.LocatorStrategy.element_source(L31-L32) - Methodoptics_framework.common.strategies.LocatorStrategy.locate(L35-L45) - Methodoptics_framework.common.strategies.LocatorStrategy.assert_elements(L48-L52) - Methodoptics_framework.common.strategies.LocatorStrategy.assert_elements_visible(L54-L64) - Methodoptics_framework.common.strategies.LocatorStrategy.supports(L69-L76) - Methodoptics_framework.common.strategies.LocatorStrategy._is_method_implemented(L79-L113) - Methodoptics_framework.common.strategies.LocatorStrategy._assert_elements_locator_style(L115-L151) - Methodoptics_framework.common.strategies.XPathStrategy(L154-L180) - Classoptics_framework.common.strategies.XPathStrategy.__init__(L157-L159) - Methodoptics_framework.common.strategies.XPathStrategy.element_source(L162-L163) - Methodoptics_framework.common.strategies.XPathStrategy.locate(L165-L166) - Methodoptics_framework.common.strategies.XPathStrategy.assert_elements(L168-L171) - Methodoptics_framework.common.strategies.XPathStrategy.assert_elements_visible(L173-L176) - Methodoptics_framework.common.strategies.XPathStrategy.supports(L179-L180) - Methodoptics_framework.common.strategies.TextElementStrategy(L183-L210) - Classoptics_framework.common.strategies.TextElementStrategy.__init__(L186-L188) - Methodoptics_framework.common.strategies.TextElementStrategy.element_source(L191-L192) - Methodoptics_framework.common.strategies.TextElementStrategy.locate(L194-L195) - Methodoptics_framework.common.strategies.TextElementStrategy.assert_elements(L197-L200) - Methodoptics_framework.common.strategies.TextElementStrategy.assert_elements_visible(L202-L205) - Methodoptics_framework.common.strategies.TextElementStrategy.supports(L208-L210) - Methodoptics_framework.common.strategies.TextDetectionStrategy(L212-L330) - Classoptics_framework.common.strategies.TextDetectionStrategy.__init__(L215-L219) - Methodoptics_framework.common.strategies.TextDetectionStrategy.element_source(L222-L223) - Methodoptics_framework.common.strategies.TextDetectionStrategy.locate(L225-L240) - Methodoptics_framework.common.strategies.TextDetectionStrategy.locate_with_aoi(L242-L290) - Methodoptics_framework.common.strategies.TextDetectionStrategy.assert_elements(L292-L326) - Methodoptics_framework.common.strategies.TextDetectionStrategy.supports(L329-L330) - Methodoptics_framework.common.strategies.ImageDetectionStrategy(L333-L437) - Classoptics_framework.common.strategies.ImageDetectionStrategy.__init__(L336-L340) - Methodoptics_framework.common.strategies.ImageDetectionStrategy.element_source(L343-L344) - Methodoptics_framework.common.strategies.ImageDetectionStrategy.locate(L346-L357) - Methodoptics_framework.common.strategies.ImageDetectionStrategy.locate_with_aoi(L359-L404) - Methodoptics_framework.common.strategies.ImageDetectionStrategy.assert_elements(L406-L433) - Methodoptics_framework.common.strategies.ImageDetectionStrategy.supports(L436-L437) - Methodoptics_framework.common.strategies.PagesourceStrategy(L439-L470) - Classoptics_framework.common.strategies.PagesourceStrategy.__init__(L440-L441) - Methodoptics_framework.common.strategies.PagesourceStrategy.capture_pagesource(L443-L458) - Methodoptics_framework.common.strategies.PagesourceStrategy.get_interactive_elements(L460-L466) - Methodoptics_framework.common.strategies.PagesourceStrategy.supports(L469-L470) - Methodoptics_framework.common.strategies.ScreenshotStrategy(L473-L498) - Classoptics_framework.common.strategies.ScreenshotStrategy.__init__(L474-L475) - Methodoptics_framework.common.strategies.ScreenshotStrategy.capture(L477-L488) - Methodoptics_framework.common.strategies.ScreenshotStrategy.capture_stream(L490-L494) - Methodoptics_framework.common.strategies.ScreenshotStrategy.supports(L497-L498) - Methodoptics_framework.common.strategies.StrategyFactory(L500-L520) - Classoptics_framework.common.strategies.StrategyFactory.__init__(L502-L511) - Methodoptics_framework.common.strategies.StrategyFactory.create_strategies(L513-L520) - Methodoptics_framework.common.strategies.PagesourceFactory(L522-L527) - Classoptics_framework.common.strategies.PagesourceFactory.__init__(L523-L524) - Methodoptics_framework.common.strategies.PagesourceFactory.create_strategies(L526-L527) - Methodoptics_framework.common.strategies.ScreenshotFactory(L530-L535) - Classoptics_framework.common.strategies.ScreenshotFactory.__init__(L531-L532) - Methodoptics_framework.common.strategies.ScreenshotFactory.create_strategies(L534-L535) - Methodoptics_framework.common.strategies.LocateResult(L538-L550) - Classoptics_framework.common.strategies.LocateResult.__init__(L541-L550) - Methodoptics_framework.common.strategies.StrategyManager(L553-L905) - Classoptics_framework.common.strategies.StrategyManager.__init__(L554-L565) - Methodoptics_framework.common.strategies.StrategyManager._build_locator_strategies(L567-L571) - Methodoptics_framework.common.strategies.StrategyManager._build_screenshot_strategies(L573-L577) - Methodoptics_framework.common.strategies.StrategyManager._build_pagesource_strategies(L579-L583) - Methodoptics_framework.common.strategies.StrategyManager._validate_aoi(L585-L599) - Methodoptics_framework.common.strategies.StrategyManager._within_aoi(L601-L635) - Methodoptics_framework.common.strategies.StrategyManager._try_strategy_locate(L637-L677) - Methodoptics_framework.common.strategies.StrategyManager.locate(L679-L697) - Methodoptics_framework.common.strategies.StrategyManager._alloc_time_for_strategy(L699-L715) - Methodoptics_framework.common.strategies.StrategyManager.assert_presence(L717-L719) - Methodoptics_framework.common.strategies.StrategyManager.assert_visibility(L721-L723) - Methodoptics_framework.common.strategies.StrategyManager._assert(L725-L768) - Methodoptics_framework.common.strategies.StrategyManager._validate_rule(L770-L774) - Methodoptics_framework.common.strategies.StrategyManager._can_strategy_assert_elements(L776-L787) - Methodoptics_framework.common.strategies.StrategyManager._try_assert_with_strategy(L789-L807) - Methodoptics_framework.common.strategies.StrategyManager.capture_screenshot(L810-L821) - Methodoptics_framework.common.strategies.StrategyManager.capture_screenshot_bytes(L823-L842) - Methodoptics_framework.common.strategies.StrategyManager.capture_screenshot_stream(L844-L857) - Methodoptics_framework.common.strategies.StrategyManager.stop_screenshot_stream(L859-L866) - Methodoptics_framework.common.strategies.StrategyManager.capture_pagesource(L868-L876) - Methodoptics_framework.common.strategies.StrategyManager._can_strategy_get_interactive_elements(L879-L890) - Methodoptics_framework.common.strategies.StrategyManager.get_interactive_elements(L892-L905) - Method
optics_framework/common/text_interface.pyoptics_framework.common.text_interface.TextInterface(L5-L68) - Classoptics_framework.common.text_interface.TextInterface.element_exist(L18-L32) - Methodoptics_framework.common.text_interface.TextInterface.find_element(L35-L54) - Methodoptics_framework.common.text_interface.TextInterface.detect_text(L57-L68) - Method
optics_framework/common/utils.pyoptics_framework.common.utils.SpecialKey(L52-L122) - Classoptics_framework.common.utils.parse_text_only_prefix(L195-L199) - Functionoptics_framework.common.utils.encode_numpy_to_png_bytes(L213-L228) - Functionoptics_framework.common.utils.encode_numpy_to_base64(L231-L238) - Functionoptics_framework.common.utils.capture_base64_screenshot_bytes(L249-L274) - Functionoptics_framework.common.utils.detect_change(L281-L291) - Functionoptics_framework.common.utils.save_screenshot(L331-L357) - Functionoptics_framework.common.utils.annotate(L360-L376) - Functionoptics_framework.common.utils.is_black_screen(L378-L382) - Functionoptics_framework.common.utils.annotate_element(L384-L390) - Functionoptics_framework.common.utils._short_class(L407-L410) - Functionoptics_framework.common.utils._is_interesting(L413-L432) - Functionoptics_framework.common.utils._descriptor_text(L435-L442) - Functionoptics_framework.common.utils._descriptor_id(L445-L451) - Functionoptics_framework.common.utils._descriptor_bounds(L454-L462) - Functionoptics_framework.common.utils._descriptor(L465-L476) - Functionoptics_framework.common.utils._walk(L479-L490) - Functionoptics_framework.common.utils.strip_page_source(L493-L526) - Functionoptics_framework.common.utils.save_interactable_elements(L601-L615) - Functionoptics_framework.common.utils.load_config(L617-L633) - Functionoptics_framework.common.utils.parse_special_key(L635-L652) - Functionoptics_framework.common.utils.calculate_aoi_bounds(L655-L696) - Functionoptics_framework.common.utils.crop_screenshot_to_aoi(L699-L725) - Functionoptics_framework.common.utils.adjust_coordinates_for_aoi(L728-L753) - Functionoptics_framework.common.utils.annotate_aoi_region(L756-L800) - Functionoptics_framework.common.utils._window_size_from_source(L913-L942) - Functionoptics_framework.common.utils._pixel_scale_for_source(L952-L1008) - Functionoptics_framework.common.utils._apply_scale_to_bbox(L1011-L1033) - Functionoptics_framework.common.utils.scale_bboxes_for_screenshot(L1036-L1070) - Functionoptics_framework.common.utils.scale_interactive_element_bounds(L1073-L1120) - Function
optics_framework/engines/elementsources/appium_screenshot.pyoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot(L10-L94) - Classoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.__init__(L18-L24) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot._require_driver(L26-L38) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.capture(L40-L47) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.capture_screenshot_bytes(L49-L60) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.get_interactive_elements(L62-L66) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.capture_screenshot_as_numpy(L68-L80) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.assert_elements(L82-L84) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.locate(L87-L89) - Methodoptics_framework.engines.elementsources.appium_screenshot.AppiumScreenshot.locate_using_index(L92-L94) - Method
optics_framework/engines/elementsources/camera_screenshot.pyoptics_framework.engines.elementsources.camera_screenshot.CapabilitiesConfig(L10-L35) - Classoptics_framework.engines.elementsources.camera_screenshot.CapabilitiesConfig.Config(L30-L31) - Classoptics_framework.engines.elementsources.camera_screenshot.CapabilitiesConfig.has_camera_index_or_url(L34-L35) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot(L38-L371) - Classoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.__init__(L46-L102) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.capture(L104-L142) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.__del__(L144-L149) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.locate(L151-L157) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.assert_elements(L159-L165) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.get_interactive_elements(L167-L173) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.create_tcp_connection(L175-L199) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.take_screenshot(L201-L288) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.deskew_image(L290-L323) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.rotate(L325-L355) - Methodoptics_framework.engines.elementsources.camera_screenshot.CameraScreenshot.take_ext_screenshot(L357-L371) - Method
optics_framework/engines/elementsources/selenium_screenshot.pyoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot(L9-L72) - Classoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.__init__(L14-L20) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot._require_driver(L22-L26) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.capture(L28-L34) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.get_interactive_elements(L36-L38) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.capture_screenshot_bytes(L40-L50) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.capture_screenshot_as_numpy(L52-L64) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.assert_elements(L66-L68) - Methodoptics_framework.engines.elementsources.selenium_screenshot.SeleniumScreenshot.locate(L70-L72) - Method
optics_framework/engines/vision_models/base_methods.pyoptics_framework.engines.vision_models.base_methods.load_template(L6-L31) - Functionoptics_framework.engines.vision_models.base_methods.match_and_annotate(L33-L65) - Function
optics_framework/engines/vision_models/image_models/remote_oir.pyoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection(L12-L253) - Classoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection.__init__(L16-L29) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection.detect_images(L31-L81) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection.find_element(L83-L151) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection.element_exist(L153-L165) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection.locate(L167-L180) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection.assert_elements(L182-L214) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection._prepare_encoded_templates(L216-L229) - Methodoptics_framework.engines.vision_models.image_models.remote_oir.RemoteImageDetection._detect_and_match_template(L231-L253) - Method
optics_framework/engines/vision_models/image_models/templatematch.pyoptics_framework.engines.vision_models.image_models.templatematch.TemplateMatchingHelper(L9-L253) - Classoptics_framework.engines.vision_models.image_models.templatematch.TemplateMatchingHelper.__init__(L17-L28) - Methodoptics_framework.engines.vision_models.image_models.templatematch.TemplateMatchingHelper.find_element(L30-L112) - Methodoptics_framework.engines.vision_models.image_models.templatematch.TemplateMatchingHelper.assert_elements(L114-L152) - Methodoptics_framework.engines.vision_models.image_models.templatematch.TemplateMatchingHelper.element_exist(L154-L253) - Method
optics_framework/engines/vision_models/ocr_models/easyocr.pyoptics_framework.engines.vision_models.ocr_models.easyocr.EasyOCRHelper(L9-L133) - Classoptics_framework.engines.vision_models.ocr_models.easyocr.EasyOCRHelper.__init__(L17-L35) - Methodoptics_framework.engines.vision_models.ocr_models.easyocr.EasyOCRHelper.find_element(L37-L104) - Methodoptics_framework.engines.vision_models.ocr_models.easyocr.EasyOCRHelper.detect_text(L106-L130) - Methodoptics_framework.engines.vision_models.ocr_models.easyocr.EasyOCRHelper.element_exist(L132-L133) - Method
optics_framework/engines/vision_models/ocr_models/googlevision.pyoptics_framework.engines.vision_models.ocr_models.googlevision.GoogleVisionHelper(L8-L109) - Classoptics_framework.engines.vision_models.ocr_models.googlevision.GoogleVisionHelper.__init__(L16-L25) - Methodoptics_framework.engines.vision_models.ocr_models.googlevision.GoogleVisionHelper.find_element(L27-L72) - Methodoptics_framework.engines.vision_models.ocr_models.googlevision.GoogleVisionHelper.element_exist(L75-L76) - Methodoptics_framework.engines.vision_models.ocr_models.googlevision.GoogleVisionHelper.detect_text(L79-L109) - Method
optics_framework/engines/vision_models/ocr_models/pytesseract.pyoptics_framework.engines.vision_models.ocr_models.pytesseract.PytesseractHelper(L8-L105) - Classoptics_framework.engines.vision_models.ocr_models.pytesseract.PytesseractHelper.__init__(L16-L28) - Methodoptics_framework.engines.vision_models.ocr_models.pytesseract.PytesseractHelper.find_element(L32-L75) - Methodoptics_framework.engines.vision_models.ocr_models.pytesseract.PytesseractHelper.detect_text(L77-L101) - Methodoptics_framework.engines.vision_models.ocr_models.pytesseract.PytesseractHelper.element_exist(L103-L105) - Method
optics_framework/engines/vision_models/ocr_models/remote_ocr.pyoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR(L13-L221) - Classoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR.__init__(L17-L39) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR.detect_text(L41-L78) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR._encode_image(L80-L92) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR._parse_ocr_results(L94-L121) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR.find_element(L123-L149) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR._decode_image_for_annotation(L151-L164) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR._find_matching_elements(L166-L178) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR._select_matching_result(L180-L191) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR._annotate_and_save(L193-L208) - Methodoptics_framework.engines.vision_models.ocr_models.remote_ocr.RemoteOCR.element_exist(L210-L221) - Method
optics_framework/optics.pyoptics_framework.optics.keyword(L54-L63) - Functionoptics_framework.optics.keyword.decorator(L55-L60) - Functionoptics_framework.optics.keyword.decorator.wrapper(L57-L58) - Functionoptics_framework.optics.library(L65-L70) - Functionoptics_framework.optics.library.decorator(L66-L67) - Functionoptics_framework.optics.fallback_params(L99-L143) - Functionoptics_framework.optics.Optics(L147-L1307) - Classoptics_framework.optics.Optics.__init__(L155-L168) - Methodoptics_framework.optics.Optics._parse_config_string(L170-L185) - Methodoptics_framework.optics.Optics._create_dependency_config(L187-L203) - Methodoptics_framework.optics.Optics._process_config_list(L205-L221) - Methodoptics_framework.optics.Optics._resolve_param(L223-L244) - Methodoptics_framework.optics.Optics.setup(L247-L270) - Methodoptics_framework.optics.Optics._extract_config_data(L272-L334) - Methodoptics_framework.optics.Optics.setup_from_file(L396-L433) - Methodoptics_framework.optics.Optics._validate_required_keys(L435-L452) - Methodoptics_framework.optics.Optics.add_element(L455-L463) - Methodoptics_framework.optics.Optics.get_element_value(L466-L474) - Methodoptics_framework.optics.Optics.add_api(L477-L499) - Methodoptics_framework.optics.Optics.add_testcase(L502-L510) - Methodoptics_framework.optics.Optics.add_module(L513-L521) - Methodoptics_framework.optics.Optics.capture_and_detect(L566-L613) - Methodoptics_framework.optics.Optics.launch_app(L618-L631) - Methodoptics_framework.optics.Optics.launch_other_app(L635-L639) - Methodoptics_framework.optics.Optics.start_appium_session(L643-L649) - Methodoptics_framework.optics.Optics.get_driver_session_id(L653-L657) - Methodoptics_framework.optics.Optics.close_and_terminate_app(L660-L664) - Methodoptics_framework.optics.Optics.force_terminate_app(L668-L681) - Methodoptics_framework.optics.Optics.get_app_version(L684-L688) - Methodoptics_framework.optics.Optics.press_element(L693-L735) - Methodoptics_framework.optics.Optics.press_element._parse_aoi_value(L714-L717) - Functionoptics_framework.optics.Optics.press_by_percentage(L739-L754) - Methodoptics_framework.optics.Optics.press_by_coordinates(L758-L773) - Methodoptics_framework.optics.Optics.press_element_with_index(L777-L786) - Methodoptics_framework.optics.Optics.detect_and_press(L790-L801) - Methodoptics_framework.optics.Optics.swipe(L805-L822) - Methodoptics_framework.optics.Optics.swipe_by_percentage(L826-L843) - Methodoptics_framework.optics.Optics.swipe_until_element_appears(L847-L862) - Methodoptics_framework.optics.Optics.swipe_from_element(L866-L881) - Methodoptics_framework.optics.Optics.scroll(L885-L895) - Methodoptics_framework.optics.Optics.scroll_until_element_appears(L899-L914) - Methodoptics_framework.optics.Optics.scroll_from_element(L918-L933) - Methodoptics_framework.optics.Optics.enter_text(L937-L950) - Methodoptics_framework.optics.Optics.enter_text_direct(L954-L962) - Methodoptics_framework.optics.Optics.enter_text_using_keyboard(L966-L974) - Methodoptics_framework.optics.Optics.enter_number(L978-L991) - Methodoptics_framework.optics.Optics.press_keycode(L995-L1003) - Methodoptics_framework.optics.Optics.clear_element_text(L1007-L1015) - Methodoptics_framework.optics.Optics.get_text(L1019-L1023) - Methodoptics_framework.optics.Optics.select_dropdown_option(L1027-L1042) - Methodoptics_framework.optics.Optics.sleep(L1046-L1050) - Methodoptics_framework.optics.Optics.execute_script(L1054-L1075) - Methodoptics_framework.optics.Optics.validate_element(L1080-L1095) - Methodoptics_framework.optics.Optics.assert_presence(L1099-L1114) - Methodoptics_framework.optics.Optics.assert_visibility(L1118-L1133) - Methodoptics_framework.optics.Optics.validate_screen(L1137-L1152) - Methodoptics_framework.optics.Optics.assert_equality(L1156-L1169) - Methodoptics_framework.optics.Optics.is_element(L1173-L1188) - Methodoptics_framework.optics.Optics.get_interactive_elements(L1191-L1207) - Methodoptics_framework.optics.Optics.capture_screenshot(L1210-L1214) - Methodoptics_framework.optics.Optics.capture_pagesource(L1217-L1221) - Methodoptics_framework.optics.Optics.get_screen_elements(L1224-L1228) - Methodoptics_framework.optics.Optics.invoke_api(L1232-L1236) - Methodoptics_framework.optics.Optics.read_data(L1240-L1248) - Methodoptics_framework.optics.Optics.run_loop(L1251-L1255) - Methodoptics_framework.optics.Optics.condition(L1258-L1262) - Methodoptics_framework.optics.Optics.evaluate(L1265-L1269) - Methodoptics_framework.optics.Optics.date_evaluate(L1272-L1278) - Methodoptics_framework.optics.Optics.quit(L1281-L1294) - Methodoptics_framework.optics.Optics.__enter__(L1296-L1298) - Methodoptics_framework.optics.Optics.__exit__(L1300-L1307) - Method
Driver & Element-Source Engines [Expand]
Concrete, pluggable engine implementations that interact with devices/browsers — Appium, Selenium, and Playwright drivers along with UI-helper and element/page-source extraction utilities, plus shared async and general-purpose utilities.
Related Classes/Methods:
optics_framework.common.async_utils.run_async:40-69optics_framework.common.utils.compare_text:293-329optics_framework.engines.drivers.playwright.Playwright:12-443
Source Files:
optics_framework/common/async_utils.pyoptics_framework.common.async_utils._start_loop(L16-L18) - Functionoptics_framework.common.async_utils._get_or_create_persistent_loop(L21-L37) - Functionoptics_framework.common.async_utils.run_async(L40-L69) - Function
optics_framework/common/utils.pyoptics_framework.common.utils.determine_element_type(L166-L192) - Functionoptics_framework.common.utils.get_timestamp(L202-L211) - Functionoptics_framework.common.utils.compute_hash(L277-L279) - Functionoptics_framework.common.utils.compare_text(L293-L329) - Functionoptics_framework.common.utils.save_page_source(L529-L565) - Functionoptics_framework.common.utils.save_page_source_html(L568-L593) - Functionoptics_framework.common.utils.bbox_from_appium_attribute_fallback(L833-L874) - Functionoptics_framework.common.utils.bbox_from_webelement_like(L877-L910) - Functionoptics_framework.common.utils.bboxes_from_webelements(L1123-L1144) - Function
optics_framework/engines/drivers/appium.pyoptics_framework.engines.drivers.appium.Appium.appium_find_element(L1257-L1268) - Method
optics_framework/engines/drivers/appium_UI_helper.pyoptics_framework.engines.drivers.appium_UI_helper.XPathUniquenessIndex(L21-L97) - Classoptics_framework.engines.drivers.appium_UI_helper.XPathUniquenessIndex.__init__(L39-L61) - Methodoptics_framework.engines.drivers.appium_UI_helper.XPathUniquenessIndex.matches(L63-L83) - Methodoptics_framework.engines.drivers.appium_UI_helper.XPathUniquenessIndex.position_of(L85-L97) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper(L100-L1303) - Classoptics_framework.engines.drivers.appium_UI_helper.UIHelper.__init__(L101-L108) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_page_source(L110-L120) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_distinct_page_source(L123-L142) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.find_xpath_from_text(L144-L161) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.find_xpath(L163-L228) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.find_exact(L230-L239) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.find_relative(L241-L255) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.make_relative(L257-L280) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.make_partial_match(L282-L319) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.find_partial(L321-L335) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.fuzzy_match_prefix(L337-L339) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.find_attribute_match(L341-L407) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.split_element(L409-L411) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.extract_attribute(L413-L421) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.simplify_xpath(L423-L452) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.extract_key_attributes(L454-L485) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._find_exact_or_suffix_match(L487-L515) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_locator_and_strategy(L517-L569) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_view_locator(L571-L652) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_locator_and_strategy_using_index(L654-L764) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.parse_bounds(L766-L783) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_bounding_box_for_text(L785-L805) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_bounding_box_for_xpath(L807-L863) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_element_attributes_by_xpath(L865-L888) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_interactive_elements(L891-L936) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._extract_bounds(L938-L977) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._extract_bounds._to_int(L962-L969) - Functionoptics_framework.engines.drivers.appium_UI_helper.UIHelper._extract_display_text(L979-L1007) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._extract_display_text.norm(L987-L991) - Functionoptics_framework.engines.drivers.appium_UI_helper.UIHelper._build_extra_metadata(L1009-L1023) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_from_single_attr(L1025-L1033) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_from_attr_pair(L1035-L1044) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_try_attributes_for_unique(L1046-L1073) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_try_node_name(L1075-L1081) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_attribute_pairs_permutations(L1083-L1086) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_try_cases_for_unique(L1088-L1108) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._xpath_build_hierarchical(L1110-L1125) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper.get_xpath(L1127-L1152) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._escape_for_xpath_literal(L1154-L1171) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._build_attribute_condition(L1173-L1192) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._build_structural_xpath(L1194-L1213) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._should_include_element(L1215-L1250) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._is_button(L1252-L1257) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._is_input(L1259-L1268) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._is_image(L1270-L1275) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._is_text(L1277-L1285) - Methodoptics_framework.engines.drivers.appium_UI_helper.UIHelper._is_probably_interactive(L1287-L1303) - Method
optics_framework/engines/drivers/playwright.pyoptics_framework.engines.drivers.playwright.Playwright(L12-L443) - Classoptics_framework.engines.drivers.playwright.Playwright.__init__(L18-L27) - Methodoptics_framework.engines.drivers.playwright.Playwright.launch_app(L33-L34) - Methodoptics_framework.engines.drivers.playwright.Playwright._launch_app_async(L36-L68) - Methodoptics_framework.engines.drivers.playwright.Playwright._launch_other_app_async(L70-L97) - Methodoptics_framework.engines.drivers.playwright.Playwright.launch_other_app(L99-L100) - Methodoptics_framework.engines.drivers.playwright.Playwright._navigate_to(L102-L125) - Methodoptics_framework.engines.drivers.playwright.Playwright.get_app_version(L127-L128) - Methodoptics_framework.engines.drivers.playwright.Playwright._normalize_locator(L131-L156) - Methodoptics_framework.engines.drivers.playwright.Playwright.press_element(L162-L163) - Methodoptics_framework.engines.drivers.playwright.Playwright._press_element_async(L165-L179) - Methodoptics_framework.engines.drivers.playwright.Playwright.press_coordinates(L181-L182) - Methodoptics_framework.engines.drivers.playwright.Playwright.press_percentage_coordinates(L184-L185) - Methodoptics_framework.engines.drivers.playwright.Playwright._press_percentage_async(L187-L192) - Methodoptics_framework.engines.drivers.playwright.Playwright.press_keycode(L194-L219) - Methodoptics_framework.engines.drivers.playwright.Playwright.enter_text(L225-L226) - Methodoptics_framework.engines.drivers.playwright.Playwright.enter_text_using_keyboard(L228-L229) - Methodoptics_framework.engines.drivers.playwright.Playwright.enter_text_element(L231-L233) - Methodoptics_framework.engines.drivers.playwright.Playwright.clear_text(L235-L237) - Methodoptics_framework.engines.drivers.playwright.Playwright.clear_text_element(L239-L241) - Methodoptics_framework.engines.drivers.playwright.Playwright.swipe(L247-L249) - Methodoptics_framework.engines.drivers.playwright.Playwright.swipe_percentage(L251-L252) - Methodoptics_framework.engines.drivers.playwright.Playwright._swipe_percentage_async(L254-L259) - Methodoptics_framework.engines.drivers.playwright.Playwright.swipe_element(L261-L283) - Methodoptics_framework.engines.drivers.playwright.Playwright._swipe_element_async(L285-L307) - Methodoptics_framework.engines.drivers.playwright.Playwright.scroll(L310-L313) - Methodoptics_framework.engines.drivers.playwright.Playwright.get_text_element(L320-L322) - Methodoptics_framework.engines.drivers.playwright.Playwright.force_terminate_app(L324-L325) - Methodoptics_framework.engines.drivers.playwright.Playwright.terminate(L327-L328) - Methodoptics_framework.engines.drivers.playwright.Playwright._cleanup_resources(L330-L346) - Methodoptics_framework.engines.drivers.playwright.Playwright._terminate_async(L348-L399) - Methodoptics_framework.engines.drivers.playwright.Playwright.get_driver_session_id(L401-L402) - Methodoptics_framework.engines.drivers.playwright.Playwright.execute_script(L404-L416) - Methodoptics_framework.engines.drivers.playwright.Playwright._execute_script_async(L418-L443) - Method
optics_framework/engines/drivers/selenium_UI_helper.pyoptics_framework.engines.drivers.selenium_UI_helper.UIHelper(L15-L259) - Classoptics_framework.engines.drivers.selenium_UI_helper.UIHelper.__init__(L16-L20) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper.get_page_source(L24-L34) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper.find_element_by_text(L36-L71) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper.find_html_element_by_text(L74-L106) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._get_html_soup(L109-L116) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._collect_matching_tags(L119-L137) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._matches_visible_text(L140-L142) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._match_tag_attributes(L145-L156) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._build_match_result(L159-L166) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper.find_html_element_by_xpath(L169-L198) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper.convert_to_selenium_element(L200-L240) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._find_element_by_text(L243-L245) - Methodoptics_framework.engines.drivers.selenium_UI_helper.UIHelper._find_element_by_attribute(L248-L259) - Method
optics_framework/engines/elementsources/appium_find_element.pyoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement(L14-L293) - Classoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.__init__(L24-L33) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement._require_driver(L35-L41) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.capture(L43-L51) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.get_page_source(L54-L69) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.get_interactive_elements(L71-L89) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.locate(L92-L154) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.get_element_bboxes(L156-L164) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.get_bbox_for_element(L166-L177) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement._assert_elements_one_pass(L179-L190) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement._assert_elements_common(L192-L216) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.assert_elements(L218-L237) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement._is_within_screen_bounds(L239-L256) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement._is_located_and_displayed(L258-L276) - Methodoptics_framework.engines.elementsources.appium_find_element.AppiumFindElement.assert_elements_visible(L278-L293) - Method
optics_framework/engines/elementsources/appium_page_source.pyoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource(L14-L324) - Classoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.__init__(L24-L32) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._require_webdriver(L34-L46) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.capture(L48-L55) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.get_page_source(L57-L74) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.get_interactive_elements(L76-L80) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._locate_by_text(L82-L96) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._locate_by_xpath(L98-L111) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.locate(L113-L138) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.get_element_bboxes(L140-L154) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.get_element_bboxes.locate_safe(L148-L152) - Functionoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.get_bbox_for_element(L156-L167) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.locate_using_index(L169-L187) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.assert_elements(L190-L235) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._validate_rule(L237-L239) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.find_xpath_from_text(L241-L262) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.find_xpath_from_text_index(L264-L275) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._validate_tree(L277-L281) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._search_text_in_attribute(L283-L292) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource._search_single_text(L294-L302) - Methodoptics_framework.engines.elementsources.appium_page_source.AppiumPageSource.ui_text_search(L304-L324) - Method
optics_framework/engines/elementsources/playwright_find_element.pyoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement(L12-L281) - Classoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.__init__(L15-L17) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement._require_page(L19-L26) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.capture(L32-L41) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.get_page_source(L43-L52) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.get_interactive_elements(L54-L66) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement._strip_prefix(L72-L83) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement._build_locator(L85-L107) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.locate(L109-L153) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.get_element_bboxes(L155-L167) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.get_bbox_for_element(L169-L185) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement._check_element_found(L191-L202) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement._check_assertion_complete(L204-L214) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.assert_elements(L216-L265) - Methodoptics_framework.engines.elementsources.playwright_find_element.PlaywrightFindElement.assert_elements_visible(L267-L281) - Method
optics_framework/engines/elementsources/playwright_page_source.pyoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource(L17-L1045) - Classoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.__init__(L23-L28) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._require_page(L34-L73) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.capture(L79-L85) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.get_page_source(L87-L114) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.get_interactive_elements(L116-L165) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._extract_bounds(L171-L212) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._escape_xpath_value(L214-L225) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_xpath_from_attribute(L227-L237) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_unique_attributes(L239-L250) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_hierarchical_path(L252-L276) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_simple_xpath(L278-L295) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_text_content(L297-L311) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_attribute_text(L313-L325) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_inner_text(L327-L349) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_class_text(L351-L363) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._extract_display_text(L365-L407) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._check_filter_type(L409-L425) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._should_include_element(L427-L451) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._is_button(L453-L473) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._is_input(L475-L481) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._is_image(L483-L496) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._is_text(L498-L519) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._is_probably_interactive(L521-L558) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._determine_xpath_uniqueness(L560-L584) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_xpath_from_single_attribute(L586-L607) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_xpath_from_attribute_pair(L609-L622) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_xpath_from_text(L624-L641) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._resolve_xpath(L643-L657) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_unique_attributes_xpath(L659-L679) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_attribute_pairs_xpath(L681-L700) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_text_xpath(L702-L714) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._try_maybe_unique_attributes_xpath(L716-L735) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.get_xpath(L737-L776) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_hierarchical_xpath(L778-L799) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._escape_for_xpath_literal(L801-L818) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_extra_metadata(L820-L846) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._resolve_optics_element(L852-L875) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._build_playwright_locator(L877-L896) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._strip_prefix_for_page_source(L898-L909) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.locate(L911-L945) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._check_single_element_presence(L951-L980) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource._check_elements_batch(L982-L1002) - Methodoptics_framework.engines.elementsources.playwright_page_source.PlaywrightPageSource.assert_elements(L1004-L1045) - Method
optics_framework/engines/elementsources/playwright_screenshot.pyoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot(L11-L120) - Classoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.__init__(L20-L22) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot._require_page(L24-L30) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.capture(L36-L43) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.capture_screenshot_bytes(L45-L61) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.capture_screenshot_as_numpy(L63-L78) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.get_interactive_elements(L84-L96) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.assert_elements(L98-L104) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.locate(L106-L112) - Methodoptics_framework.engines.elementsources.playwright_screenshot.PlaywrightScreenshot.locate_using_index(L114-L120) - Method
optics_framework/engines/elementsources/selenium_find_element.pyoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement(L11-L240) - Classoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.__init__(L16-L24) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.capture(L26-L32) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.get_page_source(L34-L45) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.get_interactive_elements(L47-L50) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.locate(L52-L103) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement._find_element_by_any(L105-L131) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.get_element_bboxes(L133-L137) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.get_bbox_for_element(L139-L143) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement._assert_elements_common(L145-L175) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.assert_elements(L177-L193) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement._is_located_and_visible(L195-L216) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.assert_elements_visible(L218-L228) - Methodoptics_framework.engines.elementsources.selenium_find_element.SeleniumFindElement.locate_using_index(L237-L240) - Method
optics_framework/engines/elementsources/selenium_page_source.pyoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource(L9-L219) - Classoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.__init__(L23-L34) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource._require_webdriver(L36-L42) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.capture(L44-L50) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.get_page_source(L54-L67) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.get_interactive_elements(L69-L72) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.locate(L74-L113) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.get_element_bboxes(L115-L126) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.get_element_bboxes.locate_safe(L120-L124) - Functionoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.get_bbox_for_element(L128-L132) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource._find_element_by_any(L134-L158) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.locate_using_index(L161-L164) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource.assert_elements(L167-L198) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource._is_text_found(L201-L209) - Methodoptics_framework.engines.elementsources.selenium_page_source.SeleniumPageSource._is_xpath_found(L211-L219) - Method
Driver Interface & Fallback Strategy Layer [Expand]
The abstract contract layer that engines must implement (DriverInterface), together with event SDK, health-check exposure, and fallback-parameter normalization logic that drives the XPath→text→OCR→image escalation ladder.
Related Classes/Methods:
optics_framework.common.driver_interface.DriverInterface:4-280optics_framework.common.eventSDK.EventSDK:13-322optics_framework.common.expose_api.health_check:397-402optics_framework.optics._extract_fallback_keys:76-82
Source Files:
optics_framework/common/driver_interface.pyoptics_framework.common.driver_interface.DriverInterface(L4-L280) - Classoptics_framework.common.driver_interface.DriverInterface.launch_app(L13-L28) - Methodoptics_framework.common.driver_interface.DriverInterface.launch_other_app(L31-L41) - Methodoptics_framework.common.driver_interface.DriverInterface.get_app_version(L44-L51) - Methodoptics_framework.common.driver_interface.DriverInterface.press_coordinates(L54-L65) - Methodoptics_framework.common.driver_interface.DriverInterface.press_element(L68-L77) - Methodoptics_framework.common.driver_interface.DriverInterface.press_percentage_coordinates(L80-L91) - Methodoptics_framework.common.driver_interface.DriverInterface.enter_text(L94-L104) - Methodoptics_framework.common.driver_interface.DriverInterface.press_keycode(L107-L116) - Methodoptics_framework.common.driver_interface.DriverInterface.enter_text_element(L119-L129) - Methodoptics_framework.common.driver_interface.DriverInterface.enter_text_using_keyboard(L132-L141) - Methodoptics_framework.common.driver_interface.DriverInterface.clear_text(L144-L153) - Methodoptics_framework.common.driver_interface.DriverInterface.clear_text_element(L156-L165) - Methodoptics_framework.common.driver_interface.DriverInterface.swipe(L168-L180) - Methodoptics_framework.common.driver_interface.DriverInterface.swipe_percentage(L183-L195) - Methodoptics_framework.common.driver_interface.DriverInterface.swipe_element(L198-L209) - Methodoptics_framework.common.driver_interface.DriverInterface.scroll(L212-L222) - Methodoptics_framework.common.driver_interface.DriverInterface.get_text_element(L225-L232) - Methodoptics_framework.common.driver_interface.DriverInterface.force_terminate_app(L235-L244) - Methodoptics_framework.common.driver_interface.DriverInterface.terminate(L247-L253) - Methodoptics_framework.common.driver_interface.DriverInterface.get_driver_session_id(L256-L264) - Methodoptics_framework.common.driver_interface.DriverInterface.execute_script(L267-L280) - Method
optics_framework/common/eventSDK.pyoptics_framework.common.eventSDK.EventSDK(L13-L322) - Classoptics_framework.common.eventSDK.EventSDK.__init__(L14-L19) - Methodoptics_framework.common.eventSDK.EventSDK._load_event_attributes_json(L21-L32) - Methodoptics_framework.common.eventSDK.EventSDK.get_current_time_for_events(L34-L43) - Methodoptics_framework.common.eventSDK.EventSDK.check_file_availability(L45-L50) - Methodoptics_framework.common.eventSDK.EventSDK.get_json_attribute(L52-L65) - Methodoptics_framework.common.eventSDK.EventSDK.get_event_attributes(L67-L79) - Methodoptics_framework.common.eventSDK.EventSDK.set_event_name(L81-L82) - Methodoptics_framework.common.eventSDK.EventSDK.form_event_name(L84-L89) - Methodoptics_framework.common.eventSDK.EventSDK.form_event_attributes(L91-L99) - Methodoptics_framework.common.eventSDK.EventSDK.submit_single_event(L101-L109) - Methodoptics_framework.common.eventSDK.EventSDK.event_sdk_initializer(L111-L115) - Methodoptics_framework.common.eventSDK.EventSDK.send_real_time_events(L117-L123) - Methodoptics_framework.common.eventSDK.EventSDK.send_events_after_execution(L125-L132) - Methodoptics_framework.common.eventSDK.EventSDK.send_batch_events(L134-L168) - Methodoptics_framework.common.eventSDK.EventSDK.add_to_array(L170-L175) - Methodoptics_framework.common.eventSDK.EventSDK.convert_to_json(L177-L182) - Methodoptics_framework.common.eventSDK.EventSDK.create_events_dictionary(L184-L185) - Methodoptics_framework.common.eventSDK.EventSDK.nested_dictionary(L187-L188) - Methodoptics_framework.common.eventSDK.EventSDK.user_event_attributes(L190-L199) - Methodoptics_framework.common.eventSDK.EventSDK.mozark_event_attributes(L201-L202) - Methodoptics_framework.common.eventSDK.EventSDK.merge_dictionaries(L204-L205) - Methodoptics_framework.common.eventSDK.EventSDK.merge_nested_dictionaries(L207-L215) - Methodoptics_framework.common.eventSDK.EventSDK.print_event(L217-L223) - Methodoptics_framework.common.eventSDK.EventSDK.capture_event(L225-L253) - Methodoptics_framework.common.eventSDK.EventSDK.capture_event_with_time_input(L255-L284) - Methodoptics_framework.common.eventSDK.EventSDK.send_all_events(L286-L313) - Methodoptics_framework.common.eventSDK.EventSDK.get_test_case_name(L315-L316) - Methodoptics_framework.common.eventSDK.EventSDK.get_application_name(L318-L319) - Methodoptics_framework.common.eventSDK.EventSDK.get_app_version(L321-L322) - Method
optics_framework/common/expose_api.pyoptics_framework.common.expose_api.HealthCheckResponse(L191-L193) - Classoptics_framework.common.expose_api.health_check(L397-L402) - Function
optics_framework/common/utils.pyoptics_framework.common.utils.strip_sensitive_prefix(L595-L598) - Function
optics_framework/engines/drivers/appium.pyoptics_framework.engines.drivers.appium.Appium(L32-L1343) - Classoptics_framework.engines.drivers.appium.Appium.__init__(L91-L112) - Methodoptics_framework.engines.drivers.appium.Appium._require_driver(L114-L119) - Methodoptics_framework.engines.drivers.appium.Appium._active_platform(L121-L137) - Methodoptics_framework.engines.drivers.appium.Appium._require_profile(L139-L147) - Methodoptics_framework.engines.drivers.appium.Appium._cleanup_existing_driver(L149-L161) - Methodoptics_framework.engines.drivers.appium.Appium._apply_app_identifier_caps(L163-L182) - Methodoptics_framework.engines.drivers.appium.Appium._try_attach_or_clear_session_caps(L184-L210) - Methodoptics_framework.engines.drivers.appium.Appium._create_new_driver_session(L212-L240) - Methodoptics_framework.engines.drivers.appium.Appium.start_session(L242-L269) - Methodoptics_framework.engines.drivers.appium.Appium.get_session_id(L271-L276) - Methodoptics_framework.engines.drivers.appium.Appium.get_driver_session_id(L278-L280) - Methodoptics_framework.engines.drivers.appium.Appium._normalize_args(L282-L295) - Methodoptics_framework.engines.drivers.appium.Appium._execute_script_with_args(L297-L310) - Methodoptics_framework.engines.drivers.appium.Appium._handle_script_execution_error(L312-L335) - Methodoptics_framework.engines.drivers.appium.Appium.execute_script(L337-L366) - Methodoptics_framework.engines.drivers.appium.Appium._get_options_for_attach(L368-L374) - Methodoptics_framework.engines.drivers.appium.Appium._populate_attached_driver_capabilities(L376-L389) - Methodoptics_framework.engines.drivers.appium.Appium.attach_to_session(L391-L470) - Methodoptics_framework.engines.drivers.appium.Appium.attach_to_session.SessionAttachmentWebDriver(L421-L444) - Classoptics_framework.engines.drivers.appium.Appium.attach_to_session.SessionAttachmentWebDriver.__init__(L422-L434) - Methodoptics_framework.engines.drivers.appium.Appium.attach_to_session.SessionAttachmentWebDriver.execute(L436-L444) - Methodoptics_framework.engines.drivers.appium.Appium._get_platform_and_options(L473-L496) - Methodoptics_framework.engines.drivers.appium.Appium.force_terminate_app(L498-L517) - Methodoptics_framework.engines.drivers.appium.Appium.terminate(L519-L531) - Methodoptics_framework.engines.drivers.appium.Appium.get_app_version(L533-L551) - Methodoptics_framework.engines.drivers.appium.Appium._get_android_device_serial(L553-L564) - Methodoptics_framework.engines.drivers.appium.Appium._get_ios_device_udid(L566-L575) - Methodoptics_framework.engines.drivers.appium.Appium._get_android_app_version(L577-L625) - Methodoptics_framework.engines.drivers.appium.Appium._get_ios_app_version(L627-L678) - Methodoptics_framework.engines.drivers.appium.Appium.initialise_setup(L680-L683) - Methodoptics_framework.engines.drivers.appium.Appium.launch_app(L685-L701) - Methodoptics_framework.engines.drivers.appium.Appium.launch_other_app(L703-L739) - Methodoptics_framework.engines.drivers.appium.Appium.get_driver(L742-L744) - Methodoptics_framework.engines.drivers.appium.Appium.click_element(L748-L759) - Methodoptics_framework.engines.drivers.appium.Appium.tap_at_coordinates(L762-L774) - Methodoptics_framework.engines.drivers.appium.Appium.swipe(L777-L842) - Methodoptics_framework.engines.drivers.appium.Appium.swipe_percentage(L846-L868) - Methodoptics_framework.engines.drivers.appium.Appium.swipe_element(L871-L926) - Methodoptics_framework.engines.drivers.appium.Appium.scroll(L929-L962) - Methodoptics_framework.engines.drivers.appium.Appium.enter_text_element(L965-L984) - Methodoptics_framework.engines.drivers.appium.Appium.clear_text_element(L987-L991) - Methodoptics_framework.engines.drivers.appium.Appium.enter_text(L994-L1015) - Methodoptics_framework.engines.drivers.appium.Appium.clear_text(L1018-L1023) - Methodoptics_framework.engines.drivers.appium.Appium.press_keycode(L1025-L1037) - Methodoptics_framework.engines.drivers.appium.Appium._handle_special_key_keyboard_input(L1039-L1051) - Methodoptics_framework.engines.drivers.appium.Appium._handle_string_keyboard_input(L1053-L1064) - Methodoptics_framework.engines.drivers.appium.Appium._flush_keyboard_buffer(L1066-L1075) - Methodoptics_framework.engines.drivers.appium.Appium._press_keycode_or_type_char(L1077-L1090) - Methodoptics_framework.engines.drivers.appium.Appium.enter_text_using_keyboard(L1093-L1108) - Methodoptics_framework.engines.drivers.appium.Appium.get_char_as_keycode(L1110-L1154) - Methodoptics_framework.engines.drivers.appium.Appium.get_text_element(L1157-L1167) - Methodoptics_framework.engines.drivers.appium.Appium.pixel_2_appium(L1170-L1183) - Methodoptics_framework.engines.drivers.appium.Appium.press_element(L1188-L1198) - Methodoptics_framework.engines.drivers.appium.Appium.press_coordinates(L1201-L1213) - Methodoptics_framework.engines.drivers.appium.Appium.press_percentage_coordinates(L1216-L1232) - Methodoptics_framework.engines.drivers.appium.Appium.press_xpath_using_coordinates(L1235-L1255) - Methodoptics_framework.engines.drivers.appium.Appium._is_deeplink(L1270-L1271) - Methodoptics_framework.engines.drivers.appium.Appium._open_deeplink(L1273-L1303) - Methodoptics_framework.engines.drivers.appium.Appium._open_android_deeplink(L1305-L1326) - Methodoptics_framework.engines.drivers.appium.Appium._open_ios_deeplink(L1328-L1343) - Method
optics_framework/engines/drivers/appium_platforms.pyoptics_framework.engines.drivers.appium_platforms.PlatformProfile(L49-L74) - Classoptics_framework.engines.drivers.appium_platforms.PlatformProfile.resolve_rc_key(L63-L74) - Methodoptics_framework.engines.drivers.appium_platforms.register_profile(L80-L82) - Functionoptics_framework.engines.drivers.appium_platforms.normalize_platform(L85-L86) - Functionoptics_framework.engines.drivers.appium_platforms.get_profile(L89-L90) - Functionoptics_framework.engines.drivers.appium_platforms.supported_platforms(L93-L94) - Functionoptics_framework.engines.drivers.appium_platforms.supported_on(L98-L118) - Function
optics_framework/engines/drivers/ble.pyoptics_framework.engines.drivers.ble.CapabilitiesConfig(L15-L35) - Classoptics_framework.engines.drivers.ble.CapabilitiesConfig.Config(L34-L35) - Classoptics_framework.engines.drivers.ble.BLEDriver(L38-L787) - Classoptics_framework.engines.drivers.ble.BLEDriver.get_port_by_name(L134-L144) - Methodoptics_framework.engines.drivers.ble.BLEDriver.__init__(L146-L199) - Methodoptics_framework.engines.drivers.ble.BLEDriver._send_mouse_reset(L201-L203) - Methodoptics_framework.engines.drivers.ble.BLEDriver._send_mouse_press(L205-L207) - Methodoptics_framework.engines.drivers.ble.BLEDriver._send_mouse_release(L209-L211) - Methodoptics_framework.engines.drivers.ble.BLEDriver.send_mouse_command(L213-L224) - Methodoptics_framework.engines.drivers.ble.BLEDriver.get_driver_session_id(L226-L228) - Methodoptics_framework.engines.drivers.ble.BLEDriver.execute_script(L230-L245) - Methodoptics_framework.engines.drivers.ble.BLEDriver.translate_coordinates_relative(L247-L281) - Methodoptics_framework.engines.drivers.ble.BLEDriver.mouse_reset_position(L283-L295) - Methodoptics_framework.engines.drivers.ble.BLEDriver.mouse_tap(L297-L303) - Methodoptics_framework.engines.drivers.ble.BLEDriver.mouse_double_tap(L305-L310) - Methodoptics_framework.engines.drivers.ble.BLEDriver.convert_pixel_to_mickeys(L312-L326) - Methodoptics_framework.engines.drivers.ble.BLEDriver.translate_coordinates_relative_pixel(L328-L340) - Methodoptics_framework.engines.drivers.ble.BLEDriver.move_tap(L342-L362) - Methodoptics_framework.engines.drivers.ble.BLEDriver.swipe_ble(L364-L402) - Methodoptics_framework.engines.drivers.ble.BLEDriver.swipe_ble.drag(L374-L385) - Functionoptics_framework.engines.drivers.ble.BLEDriver.press_coordinates(L404-L418) - Methodoptics_framework.engines.drivers.ble.BLEDriver.send_keyboard_command(L456-L464) - Methodoptics_framework.engines.drivers.ble.BLEDriver.keyboard(L466-L503) - Methodoptics_framework.engines.drivers.ble.BLEDriver.launch_app(L505-L517) - Methodoptics_framework.engines.drivers.ble.BLEDriver.launch_other_app(L519-L520) - Methodoptics_framework.engines.drivers.ble.BLEDriver.get_app_version(L522-L523) - Methodoptics_framework.engines.drivers.ble.BLEDriver.press_element(L525-L528) - Methodoptics_framework.engines.drivers.ble.BLEDriver.press_percentage_coordinates(L530-L562) - Methodoptics_framework.engines.drivers.ble.BLEDriver.enter_text(L564-L576) - Methodoptics_framework.engines.drivers.ble.BLEDriver.press_keycode(L578-L590) - Methodoptics_framework.engines.drivers.ble.BLEDriver.enter_text_element(L592-L595) - Methodoptics_framework.engines.drivers.ble.BLEDriver.enter_text_using_keyboard(L597-L625) - Methodoptics_framework.engines.drivers.ble.BLEDriver.clear_text(L627-L638) - Methodoptics_framework.engines.drivers.ble.BLEDriver.clear_text_element(L640-L645) - Methodoptics_framework.engines.drivers.ble.BLEDriver.swipe(L647-L675) - Methodoptics_framework.engines.drivers.ble.BLEDriver.swipe_percentage(L677-L708) - Methodoptics_framework.engines.drivers.ble.BLEDriver.swipe_element(L710-L711) - Methodoptics_framework.engines.drivers.ble.BLEDriver.scroll(L713-L742) - Methodoptics_framework.engines.drivers.ble.BLEDriver.get_text_element(L746-L749) - Methodoptics_framework.engines.drivers.ble.BLEDriver.force_terminate_app(L751-L769) - Methodoptics_framework.engines.drivers.ble.BLEDriver.terminate(L771-L787) - Method
optics_framework/engines/drivers/selenium.pyoptics_framework.engines.drivers.selenium.SeleniumDriver(L13-L406) - Classoptics_framework.engines.drivers.selenium.SeleniumDriver.__init__(L19-L39) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.start_session(L41-L78) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver._get_browser_name(L80-L86) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver._get_browser_options(L88-L106) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver._update_browser_url(L108-L111) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver._merge_capabilities(L113-L114) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver._set_options_capabilities(L116-L118) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.terminate(L120-L134) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.force_terminate_app(L136-L154) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.launch_app(L156-L179) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.launch_other_app(L181-L193) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.press_element(L195-L215) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.get_app_version(L219-L220) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.press_coordinates(L222-L236) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.press_percentage_coordinates(L238-L247) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.enter_text(L250-L269) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.enter_text_element(L271-L286) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.press_keycode(L288-L290) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.enter_text_using_keyboard(L292-L312) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.clear_text(L314-L324) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.clear_text_element(L327-L335) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.swipe(L338-L339) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.swipe_percentage(L341-L342) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.swipe_element(L344-L345) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.scroll(L347-L362) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.get_text_element(L364-L371) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver._raise_action_not_supported(L373-L375) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.get_driver_session_id(L377-L379) - Methodoptics_framework.engines.drivers.selenium.SeleniumDriver.execute_script(L381-L406) - Method
optics_framework/optics.pyoptics_framework.optics._extract_fallback_keys(L76-L82) - Functionoptics_framework.optics._normalize_fallback_values(L85-L96) - Functionoptics_framework.optics.fallback_params.wrapper(L101-L141) - Function
AI Self-Healing & Natural-Language Agent Layer [Expand]
The LLM-driven last resort of the self-healing ladder and natural-language automation: AISelfHealHandler recovers failed keywords and NaturalLanguageAgent drives full instructions, both backed by LLMInterface and step-curation logic, with flow_control providing loop/conditional keywords and auxiliary developer-tooling scripts.
Related Classes/Methods:
optics_framework.common.nl_agent.NaturalLanguageAgent:225-533optics_framework.common.ai_self_heal.AISelfHealHandler:202-466optics_framework.common.llm_interface.LLMInterface:8-71optics_framework.api.flow_control.FlowControl:41-1336
Source Files:
optics_framework/api/flow_control.pyoptics_framework.api.flow_control.raw_params(L27-L38) - Functionoptics_framework.api.flow_control.raw_params.decorator(L30-L36) - Functionoptics_framework.api.flow_control.raw_params.decorator.wrapper(L32-L33) - Functionoptics_framework.api.flow_control.FlowControl(L41-L1336) - Classoptics_framework.api.flow_control.FlowControl.__init__(L44-L53) - Methodoptics_framework.api.flow_control.FlowControl._ensure_session(L55-L58) - Methodoptics_framework.api.flow_control.FlowControl._resolve_param(L60-L64) - Methodoptics_framework.api.flow_control.FlowControl._get_validated_module_def(L66-L76) - Methodoptics_framework.api.flow_control.FlowControl._try_get_module_definition(L78-L85) - Methodoptics_framework.api.flow_control.FlowControl._execute_nested_module(L87-L96) - Methodoptics_framework.api.flow_control.FlowControl._execute_keyword_method(L98-L112) - Methodoptics_framework.api.flow_control.FlowControl._execute_single_keyword(L114-L125) - Methodoptics_framework.api.flow_control.FlowControl.execute_module(L127-L139) - Methodoptics_framework.api.flow_control.FlowControl.run_loop(L142-L152) - Methodoptics_framework.api.flow_control.FlowControl._loop_by_count(L154-L173) - Methodoptics_framework.api.flow_control.FlowControl._loop_with_variables(L175-L207) - Methodoptics_framework.api.flow_control.FlowControl._parse_variable_iterable_pairs(L209-L215) - Methodoptics_framework.api.flow_control.FlowControl._parse_variable_names(L217-L231) - Methodoptics_framework.api.flow_control.FlowControl._parse_iterables(L233-L243) - Methodoptics_framework.api.flow_control.FlowControl._parse_single_iterable(L245-L267) - Methodoptics_framework.api.flow_control.FlowControl.condition(L269-L281) - Methodoptics_framework.api.flow_control.FlowControl._split_condition_args(L283-L296) - Methodoptics_framework.api.flow_control.FlowControl._evaluate_conditions(L298-L325) - Methodoptics_framework.api.flow_control.FlowControl._is_module_condition(L327-L333) - Methodoptics_framework.api.flow_control.FlowControl._handle_module_condition(L335-L366) - Methodoptics_framework.api.flow_control.FlowControl._handle_expression_condition(L368-L374) - Methodoptics_framework.api.flow_control.FlowControl._is_condition_true(L376-L407) - Methodoptics_framework.api.flow_control.FlowControl._resolve_condition(L409-L426) - Methodoptics_framework.api.flow_control.FlowControl._resolve_condition.replacer(L418-L424) - Functionoptics_framework.api.flow_control.FlowControl.read_data(L429-L473) - Methodoptics_framework.api.flow_control.FlowControl._load_data_frame(L475-L490) - Methodoptics_framework.api.flow_control.FlowControl._load_env_data(L492-L529) - Methodoptics_framework.api.flow_control.FlowControl._normalize_json_data(L531-L542) - Methodoptics_framework.api.flow_control.FlowControl._try_csv_parsing(L544-L555) - Methodoptics_framework.api.flow_control.FlowControl._load_file_data(L557-L567) - Methodoptics_framework.api.flow_control.FlowControl._resolve_file_path(L569-L577) - Methodoptics_framework.api.flow_control.FlowControl._get_file_extension(L579-L582) - Methodoptics_framework.api.flow_control.FlowControl._check_file_exists(L584-L587) - Methodoptics_framework.api.flow_control.FlowControl._load_csv_file(L589-L590) - Methodoptics_framework.api.flow_control.FlowControl._load_json_file(L592-L603) - Methodoptics_framework.api.flow_control.FlowControl._ensure_df_string(L605-L608) - Methodoptics_framework.api.flow_control.FlowControl._parse_query_string(L610-L625) - Methodoptics_framework.api.flow_control.FlowControl._resolve_query_vars(L627-L645) - Methodoptics_framework.api.flow_control.FlowControl._resolve_query_vars.replacer(L633-L644) - Functionoptics_framework.api.flow_control.FlowControl._apply_filter(L647-L658) - Methodoptics_framework.api.flow_control.FlowControl._apply_column_selection(L660-L668) - Methodoptics_framework.api.flow_control.FlowControl._format_result(L670-L681) - Methodoptics_framework.api.flow_control.FlowControl._format_result.to_str(L677-L680) - Functionoptics_framework.api.flow_control.FlowControl._store_result(L683-L699) - Methodoptics_framework.api.flow_control.FlowControl._load_data_with_query(L701-L726) - Methodoptics_framework.api.flow_control.FlowControl._parse_query(L728-L740) - Methodoptics_framework.api.flow_control.FlowControl._load_csv_as_list(L742-L750) - Methodoptics_framework.api.flow_control.FlowControl._extract_element_name(L752-L760) - Methodoptics_framework.api.flow_control.FlowControl._load_data(L762-L768) - Methodoptics_framework.api.flow_control.FlowControl._load_from_csv(L772-L784) - Methodoptics_framework.api.flow_control.FlowControl._extract_csv_data(L787-L803) - Methodoptics_framework.api.flow_control.FlowControl.evaluate(L806-L819) - Methodoptics_framework.api.flow_control.FlowControl._extract_variable_name(L821-L829) - Methodoptics_framework.api.flow_control.FlowControl._compute_expression(L831-L847) - Methodoptics_framework.api.flow_control.FlowControl._compute_expression.replace_var(L839-L844) - Functionoptics_framework.api.flow_control.FlowControl._safe_eval(L849-L901) - Methodoptics_framework.api.flow_control.FlowControl._detect_date_format(L903-L918) - Methodoptics_framework.api.flow_control.FlowControl.date_evaluate(L921-L989) - Methodoptics_framework.api.flow_control.FlowControl.invoke_api(L991-L1009) - Methodoptics_framework.api.flow_control.FlowControl._parse_api_identifier(L1011-L1016) - Methodoptics_framework.api.flow_control.FlowControl._get_api_collection(L1018-L1027) - Methodoptics_framework.api.flow_control.FlowControl._get_api_definition(L1029-L1034) - Methodoptics_framework.api.flow_control.FlowControl._prepare_request_details(L1036-L1051) - Methodoptics_framework.api.flow_control.FlowControl._resolve_placeholders(L1053-L1063) - Methodoptics_framework.api.flow_control.FlowControl._execute_request(L1065-L1105) - Methodoptics_framework.api.flow_control.FlowControl._write_api_log(L1107-L1120) - Methodoptics_framework.api.flow_control.FlowControl._write_api_har(L1122-L1198) - Methodoptics_framework.api.flow_control.FlowControl._create_har_structure(L1200-L1208) - Methodoptics_framework.api.flow_control.FlowControl._process_response(L1210-L1230) - Methodoptics_framework.api.flow_control.FlowControl._parse_response_json(L1232-L1240) - Methodoptics_framework.api.flow_control.FlowControl._log_extraction_attempt(L1242-L1249) - Methodoptics_framework.api.flow_control.FlowControl._extract_values_from_response(L1251-L1258) - Methodoptics_framework.api.flow_control.FlowControl._extract_and_store_single_value(L1260-L1273) - Methodoptics_framework.api.flow_control.FlowControl._get_or_create_session_elements(L1275-L1280) - Methodoptics_framework.api.flow_control.FlowControl._evaluate_jsonpath_assertions(L1282-L1317) - Methodoptics_framework.api.flow_control.FlowControl._extract_from_json(L1319-L1336) - Method
optics_framework/common/Junit_eventhandler.pyoptics_framework.common.Junit_eventhandler.LogCaptureBuffer(L93-L108) - Classoptics_framework.common.Junit_eventhandler.LogCaptureBuffer.__init__(L97-L99) - Methodoptics_framework.common.Junit_eventhandler.LogCaptureBuffer.emit(L101-L102) - Methodoptics_framework.common.Junit_eventhandler.LogCaptureBuffer.clear(L104-L105) - Methodoptics_framework.common.Junit_eventhandler.LogCaptureBuffer.get_records(L107-L108) - Method
optics_framework/common/ai_self_heal.pyoptics_framework.common.ai_self_heal.HealAction(L84-L91) - Classoptics_framework.common.ai_self_heal.HealResult(L95-L107) - Classoptics_framework.common.ai_self_heal._DispatchOutcome(L111-L119) - Classoptics_framework.common.ai_self_heal.AISelfHealHandler(L202-L466) - Classoptics_framework.common.ai_self_heal.AISelfHealHandler.__init__(L205-L221) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._execute_single_step(L223-L278) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler.heal(L280-L306) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._finalize_suggested(L308-L324) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._build_curation_prompt(L327-L350) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._safe_call(L355-L362) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._dispatch(L364-L390) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._validate(L393-L417) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._build_line(L420-L424) - Methodoptics_framework.common.ai_self_heal.AISelfHealHandler._build_prompt(L426-L466) - Method
optics_framework/common/error.pyoptics_framework.common.error.Code(L35-L88) - Classoptics_framework.common.error.ErrorSpec(L91-L108) - Classoptics_framework.common.error.OpticsError(L352-L489) - Classoptics_framework.common.error.OpticsError.__init__(L363-L391) - Methodoptics_framework.common.error.OpticsError.log(L393-L408) - Methodoptics_framework.common.error.OpticsError._resolve_log_level(L410-L415) - Methodoptics_framework.common.error.OpticsError._build_log_message(L417-L428) - Methodoptics_framework.common.error.OpticsError._print_rich(L430-L452) - Methodoptics_framework.common.error.OpticsError._log_with_logger(L454-L463) - Methodoptics_framework.common.error.from_code(L500-L504) - Functionoptics_framework.common.error.raise_code(L507-L511) - Function
optics_framework/common/llm_interface.pyoptics_framework.common.llm_interface.LLMInterface(L8-L71) - Classoptics_framework.common.llm_interface.LLMInterface.generate(L19-L40) - Methodoptics_framework.common.llm_interface.LLMInterface.generate_json(L42-L71) - Method
optics_framework/common/models.pyoptics_framework.common.models.ElementData(L154-L236) - Classoptics_framework.common.models.ElementData.add_element(L163-L172) - Methodoptics_framework.common.models.ElementData.remove_element(L174-L177) - Methodoptics_framework.common.models.ElementData.get_element(L179-L185) - Methodoptics_framework.common.models.ElementData.get_first(L187-L190) - Methodoptics_framework.common.models.ElementData.resolve_with_fallback(L192-L236) - Methodoptics_framework.common.models.ApiCollection(L261-L275) - Classoptics_framework.common.models.ApiCollection.add_api(L267-L268) - Methodoptics_framework.common.models.ApiCollection.remove_api(L270-L272) - Methodoptics_framework.common.models.ApiCollection.get_api(L274-L275) - Method
optics_framework/common/nl_agent.pyoptics_framework.common.nl_agent.ExecResult(L36-L42) - Classoptics_framework.common.nl_agent.AgentStep(L46-L55) - Classoptics_framework.common.nl_agent.AgentResult(L59-L66) - Classoptics_framework.common.nl_agent._RunState(L70-L83) - Classoptics_framework.common.nl_agent.NaturalLanguageAgent(L225-L533) - Classoptics_framework.common.nl_agent.NaturalLanguageAgent.__init__(L228-L254) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent.run(L256-L276) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._run_one_step(L278-L319) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._execute_keyword_step(L321-L385) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._record_failure(L388-L401) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._validate(L404-L421) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._build_line(L424-L427) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._capture_page_source(L429-L437) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._build_prompt(L439-L481) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._curate_successful_steps(L483-L501) - Methodoptics_framework.common.nl_agent.NaturalLanguageAgent._build_curation_prompt(L503-L533) - Method
optics_framework/common/step_curation.pyoptics_framework.common.step_curation.curate_steps(L61-L85) - Functionoptics_framework.common.step_curation._select_indices(L88-L116) - Function
optics_framework/common/utils.pyoptics_framework.common.utils.resolve_scalar_param(L25-L49) - Function
optics_framework/engines/drivers/appium_platforms.pyoptics_framework.engines.drivers.appium_platforms.supported_on.decorator(L102-L116) - Functionoptics_framework.engines.drivers.appium_platforms.supported_on.decorator.wrapper(L104-L113) - Function
optics_framework/engines/llm_models/gemini.pyoptics_framework.engines.llm_models.gemini._image_mime_type(L24-L42) - Functionoptics_framework.engines.llm_models.gemini.GeminiLLM(L45-L130) - Classoptics_framework.engines.llm_models.gemini.GeminiLLM.__init__(L55-L94) - Methodoptics_framework.engines.llm_models.gemini.GeminiLLM.generate(L96-L130) - Method
optics_framework/helper/list_keyword.pyoptics_framework.helper.list_keyword.list_api_methods(L7-L30) - Functionoptics_framework.helper.list_keyword.format_methods(L33-L47) - Functionoptics_framework.helper.list_keyword.main(L51-L56) - Function
optics_framework/helper/live.pyoptics_framework.helper.live.LiveController._resolve_value(L706-L717) - Method
scripts/generate_pr_diff.pyscripts.generate_pr_diff.git(L17-L20) - Functionscripts.generate_pr_diff.changed_entries(L23-L37) - Functionscripts.generate_pr_diff.other_changed(L40-L46) - Functionscripts.generate_pr_diff.file_lines(L49-L53) - Functionscripts.generate_pr_diff.slug_for(L56-L62) - Functionscripts.generate_pr_diff.render_url(L65-L73) - Functionscripts.generate_pr_diff.fit_diff_page(L106-L111) - Functionscripts.generate_pr_diff.write_diff_page(L114-L131) - Functionscripts.generate_pr_diff.write_index(L134-L198) - Functionscripts.generate_pr_diff.main(L201-L228) - Function
tools/moc_camera_tcp.pytools.moc_camera_tcp.ScreenshotTcpServer(L16-L96) - Classtools.moc_camera_tcp.ScreenshotTcpServer.__init__(L17-L29) - Methodtools.moc_camera_tcp.ScreenshotTcpServer.start(L31-L36) - Methodtools.moc_camera_tcp.ScreenshotTcpServer.stop(L38-L46) - Methodtools.moc_camera_tcp.ScreenshotTcpServer._handle_client(L48-L96) - Methodtools.moc_camera_tcp._create_dummy_img_bytes(L99-L107) - Functiontools.moc_camera_tcp.main(L110-L117) - Function
tools/mock_remote_ocr/mock_remote_ocr.pytools.mock_remote_ocr.mock_remote_ocr.DetectRequest(L52-L55) - Classtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR(L58-L329) - Classtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR.HealthResponse(L65-L79) - Classtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR.HealthResponse.__init__(L72-L79) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR.__init__(L81-L144) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR.__init__._lazy_and_init(L111-L124) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR.__init__._startup_initialize_reader(L126-L132) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR.__init__._startup_schedule_reader(L134-L141) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._decode_image_bytes(L147-L166) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._lazy_import_easyocr(L168-L178) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._init_reader_async(L180-L217) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._init_reader_async._init(L206-L207) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._run_readtext_async(L219-L234) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._process_raw_results(L236-L257) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._get_image_bytes(L259-L265) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_detect_text(L268-L290) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_detect_text.detect_text(L269-L288) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_info(L292-L315) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_info.info(L293-L313) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_health(L317-L322) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_health.health(L318-L320) - Functiontools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_root(L324-L329) - Methodtools.mock_remote_ocr.mock_remote_ocr.MockRemoteOCR._make_root.root(L325-L327) - Function