class CapabilityScraper

def interactive_scraping_loop(docs_html, main_url, main_url_path, overview_key) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength

rubocop:disable Metrics/AbcSize,Metrics/MethodLength
def interactive_scraping_loop(docs_html, main_url, main_url_path, overview_key) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
  loop do # rubocop:disable Metrics/BlockLength
    current_url = begin
      @browser_helper.current_url
    rescue StandardError
      'N/A'
    end
    puts "\n--- OpenAI Subpage Scraping ---"
    puts "Current URL: #{current_url}"
    puts "Collected Keys: #{docs_html.keys.sort.join(', ')}"
    puts '---------------------------------'
    puts 'Ready to scrape current page. Options:'
    puts 's: Scrape current page'
    puts 'b: Back to overview'
    puts 'q: Quit scraping'
    choice = CliHelper.get_user_choice('Choose action', %w[s b q])
    case choice
    when 's'
      scrape_current_page(docs_html, main_url_path, overview_key)
    when 'b'
      puts "  Navigating back to overview: #{main_url}..."
      begin
        @browser_helper.goto(main_url)
        @browser_helper.wait_for_page_load
      rescue StandardError => e
        puts "  Error navigating back: #{e.message}. Navigate manually."
      end
    when 'q'
      puts '  Finished OpenAI scraping.'
      break
    end
  end
end