Class: SharedTools::Tools::Browser::SelectorInspectTool
- Inherits:
-
RubyLLM::Tool
- Object
- RubyLLM::Tool
- SharedTools::Tools::Browser::SelectorInspectTool
- Includes:
- InspectUtils
- Defined in:
- lib/shared_tools/tools/browser/selector_inspect_tool.rb
Overview
A browser automation tool for inspecting elements using CSS selectors.
Class Method Summary collapse
Instance Method Summary collapse
- #execute(selector:, context_size: 2) ⇒ Object
-
#initialize(driver: nil, logger: nil) ⇒ SelectorInspectTool
constructor
A new instance of SelectorInspectTool.
Methods included from InspectUtils
#add_elements_from_matching_labels, #ci_contains, #clean_document, #cleaned_document, #find_elements_with_matching_text
Constructor Details
#initialize(driver: nil, logger: nil) ⇒ SelectorInspectTool
Returns a new instance of SelectorInspectTool.
25 26 27 28 |
# File 'lib/shared_tools/tools/browser/selector_inspect_tool.rb', line 25 def initialize(driver: nil, logger: nil) @driver = driver || default_driver @logger = logger || RubyLLM.logger end |
Class Method Details
.name ⇒ Object
14 |
# File 'lib/shared_tools/tools/browser/selector_inspect_tool.rb', line 14 def self.name = 'browser_selector_inspect' |
Instance Method Details
#execute(selector:, context_size: 2) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/shared_tools/tools/browser/selector_inspect_tool.rb', line 30 def execute(selector:, context_size: 2) raise LoadError, "SelectorInspectTool requires the 'nokogiri' gem. Install it with: gem install nokogiri" unless defined?(Nokogiri) @logger.info("#{self.class.name}##{__method__}") doc = cleaned_document(html: @driver.html) target_elements = doc.css(selector) return "No elements found matching selector: #{selector}" if target_elements.empty? format_elements(target_elements, selector, context_size) end |