Class: Capybara::Playwright::Driver

Inherits:
Driver::Base
  • Object
show all
Extended by:
Forwardable
Includes:
DriverExtension
Defined in:
lib/capybara/playwright/driver.rb

Instance Method Summary collapse

Methods included from DriverExtension

#on_save_raw_screenshot_before_reset, #on_save_screenrecord, #with_playwright_page

Constructor Details

#initialize(app, **options) ⇒ Driver

Returns a new instance of Driver.



9
10
11
12
# File 'lib/capybara/playwright/driver.rb', line 9

def initialize(app, **options)
  @browser_runner = BrowserRunner.new(options)
  @page_options = PageOptions.new(options)
end

Instance Method Details

#invalid_element_errorsObject



73
74
75
76
77
78
# File 'lib/capybara/playwright/driver.rb', line 73

def invalid_element_errors
  @invalid_element_errors ||= [
    Node::NotActionableError,
    Node::StaleReferenceError,
  ].freeze
end

#needs_server?Boolean

Returns:

  • (Boolean)


15
# File 'lib/capybara/playwright/driver.rb', line 15

def needs_server?; true; end

#no_such_window_errorObject



80
81
82
# File 'lib/capybara/playwright/driver.rb', line 80

def no_such_window_error
  Browser::NoSuchWindowError
end

#reset!Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/capybara/playwright/driver.rb', line 49

def reset!
  # screenshot is available only before closing page.
  if callback_on_save_screenshot?
    raw_screenshot = @browser&.raw_screenshot
    if raw_screenshot
      callback_on_save_screenshot(raw_screenshot)
    end
  end

  # video path can be aquired only before closing context.
  # video is completedly saved only after closing context.
  video_path = @browser&.video_path

  # [NOTE] @playwright_browser should keep alive for better performance.
  # Only `Browser` is disposed.
  @browser&.clear_browser_contexts

  if video_path
    callback_on_save_screenrecord(video_path)
  end

  @browser = nil
end

#wait?Boolean

Returns:

  • (Boolean)


14
# File 'lib/capybara/playwright/driver.rb', line 14

def wait?; true; end