class BrowserCrawler::EngineUtilities::PageInspector
Attributes
capybara_session[RW]
link_inspector[RW]
link_scanner[RW]
report_store[RW]
scan_result[RW]
Public Class Methods
new(link_inspector:, capybara_session:, report_store:)
click to toggle source
# File lib/browser_crawler/engine_utilities/page_inspector.rb, line 17 def initialize(link_inspector:, capybara_session:, report_store:) @link_inspector = link_inspector @capybara_session = capybara_session @report_store = report_store @scan_result = [] @link_scanner = LinkScanner.new(link_inspector: link_inspector) end
Public Instance Methods
before_page_scan()
click to toggle source
# File lib/browser_crawler/engine_utilities/page_inspector.rb, line 48 def before_page_scan; end
save_to_report(screenshot_operator: nil)
click to toggle source
# File lib/browser_crawler/engine_utilities/page_inspector.rb, line 36 def save_to_report(screenshot_operator: nil) screenshot_path = save_screenshot(screenshot_operator) report_store.record_page_visit( page: link_inspector.full_url, extracted_links: scan_result, screenshot_filename: screenshot_path, external: link_inspector.external_url?, code: capybara_session.status_code ) end
visit_page()
click to toggle source
# File lib/browser_crawler/engine_utilities/page_inspector.rb, line 25 def visit_page uri = link_inspector.uri Capybara.app_host = "#{uri.scheme}://#{uri.host}:#{uri.port}" visit link_inspector.full_url with_hooks_for(type: :each) do @scan_result = scanning end end
Private Instance Methods
save_screenshot(screenshot_operator)
click to toggle source
# File lib/browser_crawler/engine_utilities/page_inspector.rb, line 56 def save_screenshot(screenshot_operator) return unless screenshot_operator&.save_screenshots? capybara_session.save_screenshot( screenshot_operator.file_path(url: capybara_session.current_url) ) end
scanning()
click to toggle source
# File lib/browser_crawler/engine_utilities/page_inspector.rb, line 52 def scanning link_scanner.scan(page: capybara_session) || [] end